需要帮助在C#中解析HTML

时间:2009-09-30 14:06:55

标签: c# html parsing stream

为了个人使用,我试图解析一个小网页,以简单的网格显示法国足球锦标赛的结果。

var Url = "http://www.lfp.fr/mobile/ligue1/resultat.asp?code_jr_tr=J01";
WebResponse result = null;
WebRequest req = WebRequest.Create(Url);
result = req.GetResponse();
Stream ReceiveStream = result.GetResponseStream();
Encoding encode = System.Text.Encoding.GetEncoding(0);
StreamReader sr = new StreamReader(ReceiveStream, encode);

                while (sr.Read() != -1)
                {
                    Line = sr.ReadLine();
                    Line = Regex.Replace(Line, @"<(.|\n)*?>", " ");
                    Line = Line.Replace("&nbsp;", "");
                    Line = Line.TrimEnd();
                    Line = Line.TrimStart();

然后我真的没有线索要么逐行采取,要么采取行动  整个流程在一个,以及如何仅使用下一个将作为分数的数字来检索团队的名称。

最后,我想将两个团队的分数放在一个监听或xml中,以便将它与电话应用程序一起使用

如果有人有想法,那将非常感谢!

4 个答案:

答案 0 :(得分:7)

答案 1 :(得分:1)

您可以将流放入XmlDocument,以便通过XPath之类的内容进行查询。或者您可以将LINQ to XMLXDocument一起使用。

虽然它并不完美,因为HTML文件并不总是格式良好的XML(我们不知道它!),但它是使用框架中已有的东西的简单解决方案。

答案 2 :(得分:0)

您需要一个SgmlReader,它可以在任何SGML文档(HTML文档确实是这样)上提供类似XML的API。

答案 3 :(得分:0)

您可以使用Regex.Match方法提取团队名称和分数。检查html以查看每行是如何构建的。这是屏幕抓取中的常用技术。