提前感谢您提供的任何帮助。我试图用HtmlAgilityPack抓取一些HTML并且遇到XPATH语法问题。我正在处理的HTML有多个标签,我想要访问<< p>。
<p class="row" data-pid="5687754180">
<a href="/bod/5687754180.html" class="i gallery" data-ids="1:00c0c_fapkFsQg3Dx">
<span class="price">$5000</span>
</a>
<span class="txt">
<span class="pl">
<span class="icon icon-star" role="button">
<span class="screen-reader-text">
<? __("favorite this post") ?>
</span>
</span>
<time datetime="2016-07-17 19:36" title="Sun 17 Jul 07:36:03 PM">Jul 17</time> <a href="/bod/5687754180.html" data-id="5687754180" class="hdrlnk">
<span id="titletextonly">☇☇♔♔♔♔♔1998 Mastercraft Prostar㊣</span>
</a>
</span>
<span class="l2">
<span class="price">$5000</span>
<span class="pnr">
<span class="px">
<span class="p"> pic</span>
</span>
</span>
</span>
<span class="js-only banish-unbanish">
<span class="banish">
<span class="icon icon-trash" role="button"/>
<span class="screen-reader-text">hide this posting</span>
</span>
<span class="unbanish">
<span class="icon icon-trash red" role="button"/> restore this posting</span>
</span>
</span>
</p>
我的想法是我可以遍历所有&lt; p>标签并在我需要的每个标签中获取标签,但它并没有很好地运作。这就是我想得到的:
然后转到下一个&lt; p>得到同样的东西。我觉得自己越来越近了,但我错过了至关重要的事情。例如,这段代码为我提供了&#34; data-pid&#34;来自每个
,但&#34; titletextonly&#34;一遍又一遍。
感谢您提供的任何帮助!!
答案 0 :(得分:1)
每当XPath以/
开头时,它将始终被视为绝对XPath(换句话说,相对于根文档)忽略当前上下文元素,在这种情况下由变量{{1}引用}。也就是说,title
将始终返回与XPath参数匹配的整个文档中的第一个元素,而不管上下文元素。
要使XPath相对于context元素,您需要在开头添加SelectSingleNode()
:
.