Xpath首次出现一棵树

时间:2013-07-23 10:19:45

标签: xpath scrapy lxml

我想找到第一次出现的树。例如:

<div id='post>
<p>text1</p>
<p>text2</p>
<img src="a.jpg">
<img src="b.jpg">
<p>text3</p>
<p>text4</p>
<img src="c.jpg">
<p>text5</p>
</div>

我想找到第一次出现的“p / img / @src”。

当我进行xpath搜索时:.//div/p/img[1]/@src
它给出了2次点击,a.jpg和c.jpg

仅第一次出现的xpath是什么(a.jpg)。 我会说.//div/(p/img)[1]/@src但当然不行。

2 个答案:

答案 0 :(得分:1)

最好的选择是:

(//img[@src])[1]/@src

(//p//img[@src])[1]/@src

img元素中确保p本身。

答案 1 :(得分:0)

正如马丁所说,img不是p的孩子。此外,在您的示例中,id内的div属性的单引号关闭和img的标记关闭。 在这里你的xml更正了:

<div id='post'>
   <p>text1</p>
   <p>text2</p>
   <img src="a.jpg"/>
   <img src="b.jpg"/>
   <p>text3</p>
   <p>text4</p>
   <img src="c.jpg"/>
   <p>text5</p>
</div>

现在选择第一张图片,您只需使用//img[1]/@src//img[@src="a.jpg"]