2011-12-23 73 views
0

我想使用xpath語句在(x)html文件中獲取一些特定的值。
我使用xmlDocument類讀取了像xml文件一樣的html文件。
問題是,我的XPath查詢不會因爲HTML標記定義的命名空間的工作:如何管理xmlns以便能夠執行xpath查詢?

<html xmlns="http://www.w3.org/1999/xhtml"> 

如果我刪除中的xmlns HTML標記,它工作正常。
有什麼問題? (我不想使用Html敏捷包)
謝謝!
這裏是我的代碼:

XmlDocument readDoc = new XmlDocument(); 
System.Xml.XmlNamespaceManager xmlnsManager = new System.Xml.XmlNamespaceManager(readDoc.NameTable); 
readDoc.XmlResolver = null; 
xmlnsManager.AddNamespace("html", "http://www.w3.org/1999/xhtml"); 
readDoc.Load("myHTML.html"); 
int count = readDoc.SelectNodes("//html/body/div/span[@class='layout']",xmlnsManager).Count; 

回答

0

因爲你的元素是在命名空間中,你的XPath語句必須包括命名空間太(包括子元素)...

int count = readDoc.SelectNodes("//html:html/html:body/html:div/html:span[@class='layout']",xmlnsManager).Count; 
+0

工作正常!非常感謝! –

相關問題