2011-12-16 58 views
2

我想下載一個網頁並解析它。我需要到達html文檔的每個節點。所以我使用WebClient進行下載,這非常完美。然後我用下面的代碼片段解析文檔:通過C#解析網頁,XmlDocument.LoadXml

WebClient client = new WebClient(); 

Stream data = client.OpenRead("http://web.cs.hacettepe.edu.tr/~bil339/"); 
StreamReader reader = new StreamReader(data); 
string xml = reader.ReadToEnd(); 

data.Close(); 
reader.Close(); 
XmlDocument xmlDoc = new XmlDocument(); 
xmlDoc.loadXml(xml); 

在最後一行,程序等待一段時間,然後崩潰。它說,在HTML代碼中有錯誤,這是不應該的,不應該在這裏,等等。 任何建議來解決這個問題?其他技術來解析HTML代碼是受歡迎的(當然,在C#中)。

+0

loadxml需要一個xml文檔,如果是html頁面,它會拋出異常 – 2011-12-16 18:59:30

回答

7

使用HTMLAgilityPack解析HTML。格式良好的HTML不是XML,不能像這樣解析。例如,它缺少所有XML文件需要的<?xml version="1.0" encoding="UTF-8"?>序言。 HTML敏捷包更爲寬容。