我想在我的C#程序中解析網站的HTML。我使用 DLL將HTML轉換爲XML。我用下面的方法如下:簡單的XPath查詢:無結果
XmlDocument FromHtml(TextReader reader)
{
// setup SGMLReader
Sgml.SgmlReader sgmlReader = new Sgml.SgmlReader();
sgmlReader.DocType = "HTML";
sgmlReader.WhitespaceHandling = WhitespaceHandling.None;
sgmlReader.CaseFolding = Sgml.CaseFolding.ToLower;
sgmlReader.InputStream = reader;
// create document
XmlDocument doc = new XmlDocument();
doc.PreserveWhitespace = true;
doc.XmlResolver = null;
doc.Load(sgmlReader);
return doc;
}
接下來,我讀了一個網站,並嘗試去尋找header
節點:
var client = new WebClient();
var xmlDoc = FromHtml(new StringReader(client.DownloadString(@"http://www.switchonthecode.com")));
var result = xmlDoc.DocumentElement.SelectNodes("head");
然而,這個查詢給出了一個空的結果(計數== 0 )。但是,當我檢查xmlDoc.DocumentElement的結果來看,我看到以下內容:
任何想法就是爲什麼目前還沒有結果?請注意,當我嘗試其他網站時,如http://www.google.com,它可以正常工作。
有一個關於'head'命名空間 - 你可以看到它的截圖 – Cameron