如何使用html agility pack和xpath獲取所有子節點

html-agility-pack xml xpath

我有一個XML文檔,我試圖使用XPath解析HTML Agility Pack。這是我獲取元素的代碼:

HtmlDocument htmldoc = new HtmlDocument();
htmldoc.Load(fileName);
HtmlNodeCollection nodes = htmldoc.DocumentNode.SelectNodes("feed/l");

這是我的XML文檔

<?xml version="1.0" encoding="UTF-8"?>
<feed>
<tm>5701</tm>
<tp>1141</tp>
<pnr>1</pnr>
<l type="TEXT">
<ca>
<c id="21">JA</c>
</ca>
<pts>
<pt id="5">DO</pt>
</pts>
<od>MA 99</od>
<osd>2014-02-21</osd>
<od>2014-02-22</od>
<cu>url</cu>
<ip>ip</ip>
<ai>3184</ai>
<an>com</an>
<n id="1">US n</n>
</l>
</feed>

我試圖得到l的子節點及其子節點,但我的XPath返回帶有l作為集合的節點,但子節點為空。我正在尋找的節點按l分組

 <ca>
<c id="21">JA</c>
</ca>
<pts>
<pt id="5">DO</pt>
</pts>
<od>MA 99</od>
<osd>2014-02-21</osd>
<od>2014-02-22</od>
<cu>url</cu>
<ip>ip</ip>
<ai>3184</ai>
<an>com</an>
<n id="1">US n</n>

但是沒有孩子。請幫助我的XPath似乎是正確的。

熱門答案

你的XPath應該是

feed/l/*

因為你想要l的children元素。所以在你的代碼中它應該是

HtmlNodeCollection nodes = htmldoc.DocumentNode.SelectNodes("feed/l/*");



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因