【问题标题】:Use index on after filter on xpath在 xpath 上的过滤后使用索引
【发布时间】:2013-07-02 08:06:16
【问题描述】:

我有以下 xml 片段。

<root>
  <site type="main">
    <link>http://stackexchange.com</link>
  </site>
  <site type="qa">
    <link>http://stackoverflow.com</link>
  </site>
  <site type="qa">
    <link>http://superuser.com</link>
  </site>
  <site type="">
    <link>http://data.stackexchange.com</link>
  </site>
</root>

我想选择“qa”类型的第一个站点的链接。我认为//site[@type="qa"][1] 应该这样做。但是 id 不起作用。

【问题讨论】:

    标签: python xml xpath scrapy xpath-1.0


    【解决方案1】:

    试试(//site[@type="qa"])[1]/link/text()。

    或者,或者:

    //site[@type="qa"][position()=1]/link/text()
    

    在http://www.xpathtester.com/ 上测试,结果为http://stackoverflow.com。

    【讨论】:

    • 为什么//site[@type="qa" and position() = 1]/link/text() 不起作用?
    • 您要求两个条件同时为真。您应该首先搜索qa 属性,然后检查位置://site[@type="qa"][position()=1]/link/text()。另请参阅answer。
    猜你喜欢
    • 1970-01-01
    • 2013-07-11
    • 2016-11-18
    • 1970-01-01
    • 2013-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-17
    相关资源
    最近更新 更多