Esempio n. 1
0
File: main.cs Progetto: bakera/Test
        private int ParseFromUri(string uri)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
            request.AllowAutoRedirect = false;
            request.UserAgent = "RedFace/0.1";

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            RedFaceParser p = new RedFaceParser();
            p.ParserEventRaised += WriteEvent;

            string charsetName = EncodingSniffer.ExtractEncodingNameFromMetaElement(response.ContentType);
            if(!string.IsNullOrEmpty(charsetName)){
                Console.WriteLine("HTTP応答ヘッダで文字符号化方式が指定されています。: {0}", charsetName);
                p.SetForceEncoding(charsetName);
            }
            using(Stream data = response.GetResponseStream()){
                p.Parse(data);
            }
            PrintResult(p);
            return 0;
        }
Esempio n. 2
0
File: main.cs Progetto: bakera/Test
 private void PrintResult(RedFaceParser p)
 {
     var logs = p.GetLogs();
     foreach(ParserLog log in logs){
         Console.WriteLine("{0}行{1}文字: {2}", log.Line.Number, log.ColumnNumber, log.Message);
         Console.WriteLine(" {0}", log.Line.Data);
     }
     Console.WriteLine("パース開始: {0}", p.StartTime);
     Console.WriteLine("パース終了: {0}", p.EndTime);
     Console.WriteLine("パース時間: {0}", p.EndTime - p.StartTime);
     Console.WriteLine();
     Console.WriteLine("========");
     //			Console.WriteLine(p.Document.OuterXml);
 }
Esempio n. 3
0
File: main.cs Progetto: bakera/Test
        private int ParseFromFile(FileInfo file)
        {
            Console.WriteLine("ファイル: <{0}> をパースします。", file.FullName);
            RedFaceParser p = new RedFaceParser();
            p.ParserEventRaised += WriteEvent;

            using(FileStream fs = file.Open(FileMode.Open, FileAccess.Read, FileShare.Read)){
                p.Parse(fs);
            }
            PrintResult(p);
            return 0;
        }