0
var cats = doc.DocumentNode.SelectNodes("xpath1 | xpath2");
我使用|運算符來計算多個節點,並且html agilitypack將它們放在一個包含所有結果的NodeCollection中,我如何知道Node是xpath1還是xpath2的結果?計算多個節點集
例如
var cats = doc.DocumentNode.SelectNodes("//*[contains(@name,'thename')]/../../div/ul/li/a | //*[contains(@name,'thename')]/../../div/ul/li/a/../div/ul/li/a");
我試圖從第一XPath返回第二個xpath返回單個或多個元件的單個元件構建樹狀結構中,第一XPath是一個主樹節點和所述第二XPath是該節點的孩子,我想根據結果的內部文本構建一個List<string,List<string>>
。
爲了使它更簡單考慮下面的HTML:
<ul>
<li>
<h1>Node1</h1>
<ul>
<li>Node1_1</li>
<li>Node1_2</li>
<li>Node1_3</li>
<li>Node1_4</li>
</ul>
</li>
<li>
<h1>Node2</h1>
<ul>
<li>Node2_1</li>
<li>Node2_2</li>
</ul>
</li>
<li>
<h1>Node3</h1>
<ul>
<li>Node3_1</li>
<li>Node3_2</li>
<li>Node3_3</li>
</ul>
</li>
</ul>
var cats = doc.DocumentNode.SelectNodes("//ul/li/h1 | //ul/li/ul/li")
因爲xpath2得到xpath1的孩子,我想跟蹤chidren的,檢查HTML例子 – user1492051
我更新我的回答佔兒童脫離頭部。他們是獨特的元素,你想知道他們是不同的元素。沒有理由組合xpaths並將它們放入一個查詢中。 –
你不能這樣做與HtmlAgilityPack ... – user1492051