ruby - REXML - 如何提取单个元素

标签 ruby rexml

我正在用 ruby​​ 编写一些验收测试,其中涉及断言响应 XML 中存在值。

我的 XML 是这样的:

<?xml version="1.0"?>
<file xmlns:dvi=xxxxx>
    <name>whatever</name>
</file>

还有其他属性,但上面的内容应该可以说明我的观点。这是我的 ruby 代码:

xml = <the xml above>
xmlDoc = REXML::Document.new(xml)
puts xmlDoc.elements().to_a('file/name')

这会打印出 <name>whatever</name>但我希望它简单地打印出 whatever

在这个 XML 中只有一个名称元素。我已经能够使用 elements.each 打印出我想要的文本但这似乎有点矫枉过正。

谢谢, 阿德里安

最佳答案

尝试

xmlDoc.elements().to_a('file/name').first.text

然后添加一些错误处理(这不是健壮的)。

to_a 返回一个 REXML 元素数组。使用 first 检索 第一个(而且应该是唯一的)元素。使用 text 您可以访问该元素的文本内容。

关于ruby - REXML - 如何提取单个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7347218/

相关文章:

objective-c - 创建可获胜的 "random"单人纸牌洗牌

ruby - 比较 RSpec 中 REXML 元素的名称/属性相等性

ruby-on-rails - Ruby 将单引号转换为 XML 中的双引号

ruby - REXML 格式问题

ruby-on-rails - ruby on rails 控制台进程在后台

ruby-on-rails - 如何使用 Windows 开始使用 Ruby on Rails

ruby - 已经初始化的常量警告

ruby-on-rails - 测试流程(交叉 Controller )的最佳方法是什么?

ruby - REXML 正在换行长行。我该如何关闭它?

ruby - Ruby 和 JRuby 中的 XSLT 转换