我一直在努力解決過去幾天中遇到的這個問題。說,我想從HTML文檔中獲取所有文本(),但我只想知道和檢索包含文本數據的節點的XPath。例如:使用XPath選擇包含文本的所有節點
foreach (var textNode in node.SelectNodes(".//text()"))
//do stuff here
然而,當涉及到使用textNode.XPath
檢索textNode的XPath中,我得到了充分的XPath包括#text
節點:
/html[1]/body[1]/div[1]/a[1]/#text
但我只想要含節點文本,例如:
/html[1]/body[1]/div[1]/a[1]
任何人都可以指向一個更好的XPath解決方案來檢索包含文本的所有節點,但只能檢索XPath直到包含節點?
我想過拆分XPath,然後刪除#text節點。這可能是最好的解決方案,但我仍然想看看是否可以通過使用XPath來解決這個問題。如果到今天爲止我還沒有想出使用XPath的解決方案,那麼將此答案標記爲已回答。 – 2013-03-20 11:11:48
我使用第一行,但它給出了無法找到getXPath的錯誤。哪個命名空間包含getXPath? – user585440 2016-01-10 05:36:03
@ user585440對不起,我不記得這個函數是如何工作的,但它看起來取決於你的環境。它似乎返回包含給定'textNode'的String對象的內容。我相信你可以在官方的.NET文檔中找到類似的功能。 – 2016-01-11 17:06:58