我使用一個XmlDocument解析和操縱XHTML字符串,將一些節點,以非HTML節點。實施GetByClassName了對於.NET的XmlDocument
什麼是得到一個給定的類名稱的所有節點列表的最佳方式?它可以用XPath完成嗎?
我使用一個XmlDocument解析和操縱XHTML字符串,將一些節點,以非HTML節點。實施GetByClassName了對於.NET的XmlDocument
什麼是得到一個給定的類名稱的所有節點列表的最佳方式?它可以用XPath完成嗎?
給定的班級?如果它只是一個類,那麼你應該可以做類似.SelectNodes(「// * [@ class ='foo']」)。如果它不是xhtml,那麼HTML Agility Pack值得一看。
在客戶端,jQuery的將是一個不錯的選擇 - 支持複合類名。
如果你在單個元素上有多個類名,並且需要在服務器上處理它,我希望你可能需要先找到候選類(「// * [@ class!='']),並且然後遍歷他們做了Split()
和檢查的結果的類名,即除了手動拉
在LINQ而言,是這樣的:
var qry = from XmlElement el in d.SelectNodes("//*[@class!='']")
let classes = el.GetAttribute("class").Split(new[] {' '},
StringSplitOptions.RemoveEmptyEntries)
where classes.Contains("foo")
select el;
是的,很容易使用XPath:
//*[@class='foo']
那麼我認爲XPath不支持正則表達式? – tpower 2008-11-03 14:18:14
非本地。在xpath中有一系列可用的字符串函數 - 但是,沒有什麼特別方便。 – 2008-11-03 15:41:02