ruby - Xpath 在 Nokogiri 中不返回任何内容

标签 ruby xml nokogiri

<分区>

Possible Duplicate:
Nokogiri/Xpath namespace query

假设有XML

<?xml version="1.0" encoding="utf-8"?> 
<SomeResponse xmlns="some_namespace"> 
  <Timestamp>......</Timestamp> 
  <Ack>Failure</Ack> 
  <Errors> 
    <ShortMessage>ShortMessage111.</ShortMessage> 
    <LongMessage>LongMessage111.</LongMessage> 
    <ErrorCode>1</ErrorCode> 
    <SeverityCode>Warning</SeverityCode> 
  </Errors> 
  <Errors> 
    <ShortMessage>ShortMessage222.</ShortMessage> 
    <LongMessage>LongMessage222.</LongMessage> 
    <ErrorCode>2</ErrorCode> 
    <SeverityCode>Warning2</SeverityCode> 
  </Errors>
  <!-- there might be many Errors nodes -->
  <Version>123</Version> 
  <Build>122345abt_3423423</Build> 
</SomeResponse> 

我尝试使用 Nokogiri 查找所有错误及其长消息和短消息。

我在做:

doc = Nokogiri.XML(xml)
errors = doc.xpath("//Errors")
puts errors

errors2 = doc.xpath("//Errors//ShortMessage")
puts errors

它什么也没显示。

我做错了什么?

最佳答案

如果你不想处理命名空间,你可以使用

doc.remove_namespaces!

它是惰性的(= 高效的),但是 it is not recommended .

关于ruby - Xpath 在 Nokogiri 中不返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13303287/

相关文章:

ruby-on-rails - Ruby 中的时间差异(以分钟为单位)

ruby - Ansible 无法运行 npm 或 rake 命令

ruby - 使用 mechanize 检查名称相似但不同的 div

ruby-on-rails - ruby 哈希设置

ruby-on-rails - Ruby on Rails 中的@变量

python - 根据 XML 架构 (xsd) 验证具有大文本元素的 XML

Android textview 在包装时将单词分开

xml - 如何在R中打开文件格式和文件扩展名不同的excel文件?

ruby - 如何在 Ubuntu 中将 libxml 2.7.8 降级到 2.7.6

html - 在两个 HTML 注释之间进行选择的 XPath?