XPath从/标签解析“href”?

时间:2016-12-19 15:52:30

标签: html parsing xpath

我有这样的HTML代码:

<a href="/images/big_1.jpg" class="class-a">
   <img class="class-img" src="/images/small_1.jpg"/>
      <span class="class-span">
         <img src="/images/img_1.png">
      </span>
</a>

<a href="/images/big_2.jpg" class="class-a">
   <img class="class-img" src="/images/small_2.jpg"/>
      <span class="class-span">
         <img src="/images/img_2.png">
      </span>
</a>

我成功地从第一个/一个标签中抓取了所有网址:

//a[@class="class-a"]/@href
例如,它将返回此URL:

/images/big_1.jpg,/images/small_1.jpg,/images/img_1.png

但我只需要这个网址:

/images/big_1.jpg,/images/big_2.jpg

请帮助!

1 个答案:

答案 0 :(得分:0)

//a[@class="class-a"]/@href只会使用“class-a”href属性返回a元素的class属性值。在你的情况下,这些是:

/images/big_1.jpg,/images/big_2.jpg

换句话说,您当前的方法是正确的。

如果您的意思是获取src元素的hrefa属性以及所有子元素。如果是这种情况,您可以使用descendant-or-self@*name()一起检查属性名称:

//a[@class = 'class-a']/descendant-or-self::*/@*[name() = 'src' or name() = 'href']