【问题标题】:ruby xpath nokogiriruby xpath nokogiri
【发布时间】:2011-09-21 03:44:53
【问题描述】:

我正在使用 nokogiri ruby​​ gem 来解析 xml。

<d:abc>19</d:abc>
<d:def m:type="Edm.Double">0</**d:def>

假设 entry 是 XML Nokogiri 节点,使用上面的示例 xml。我可以通过使用轻松获取 abc 的文本 entry.xpath('d:abc').text

如何获取def的文本?

谢谢

【问题讨论】:

  • 您确定前缀"d:" 和"m:" 绑定到的命名空间已在您的XPath 引擎中注册了吗?否则,您可能会收到错误消息。
  • 嗨,mu.. 如果您注意到示例中的第二个 XML 元素是“def”
  • 嗨 Dimitre,我没有收到 的任何错误,但我无法弄清楚 ,您介意详细说明一下吗你指的注册?我从第三方获取 XML .. 所以我没有很大的灵活性来更改 XML

标签: ruby xpath nokogiri


【解决方案1】:
require 'nokogiri'
xml = Nokogiri::XML('<root xmlns:m="bar"><def m:type="Edm.Double" /></root>')
p xml.at_xpath('//def').attribute('type').text
#=> "Edm.Double"

【讨论】:

  • 嗨 Phrogz.. 谢谢,我已编辑您的答案并接受为答案。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多