Comment obtenir tous les nœuds enfants avec le pack d'agility html et xpath

html-agility-pack xml xpath

Question

J'ai un document XML que j'essaie d'analyser avec HTML Agility Pack à l'aide de XPath. Ceci est mon code pour obtenir les éléments:

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

Ceci est mon document 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>

J'essaie d'obtenir tous les nœuds enfants de l et leurs enfants, mais mon XPath renvoie les nœuds avec l comme collection, mais les enfants sont nuls. Les nœuds que je recherche regroupés par l sont ceux-ci

 <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>

mais il n'y a pas d'enfants. S'il vous plaît, aidez mon XPath semble être correct.

Réponse populaire

Votre XPath devrait être

feed/l/*

comme vous voulez l'élément enfants de l . Donc, dans votre code, il devrait être

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


Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi