我正在用 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/