【问题标题】:Can I get value of an specific attribute only by XPath?我只能通过 XPath 获取特定属性的值吗?
【发布时间】:2017-08-11 10:28:34
【问题描述】:

我有这样的代码:

doc = Nokogiri::HTML("<a href='foo.html'>foo</a><a href='bar.html'>bar</a>")
doc.xpath('//a/@href').map(&:value) # => ["foo.html", "bar.html"]

它按我的预期工作。

但出于好奇我想知道,我是否也可以仅通过使用 XPath 来获取 href 属性的值?

【问题讨论】:

  • only by using XPath 是什么意思?这个//a/@hrefXPath 得到href 属性值。 videlibri.sourceforge.net/cgi-bin/…
  • 我想也许有一个类似//a/@href/value()的xpath。好像没有。谢谢。

标签: ruby xpath nokogiri


【解决方案1】:

先定位属性

示例: 网站名称: https://www.easymobilerecharge.com/

我们要定位“MTS”链接

在您的情况下,要定位此元素,我们可以使用 x-path 如下: //a[contains(text(),'MTS')]

现在要获取 href 属性,请使用: //a[contains(text(),'MTS')]/@href

【讨论】:

    【解决方案2】:

    this question 的第一个答案来看,答案似乎是肯定的和否定的。它提供了

    xml.xpath("//Placement").attr("messageId")
    

    这与“仅 XPath”非常接近,但并非完全如此。由你来判断这对你来说是否足够。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-17
      • 2017-02-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多