我正在ruby中编写一些验收测试,其中涉及在响应XML中声明值的存在。
我的XML是这样的:
<?xml version="1.0"?>
<file xmlns:dvi=xxxxx>
<name>whatever</name>
</file>
还有其他属性,但上面的内容应该说明我的观点。这是我的红宝石代码:
xml = <the xml above>
xmlDoc = REXML::Document.new(xml)
puts xmlDoc.elements().to_a('file/name')
这打印出<name>whatever</name>
,但我希望它只打印出whatever
在这个XML中,只有一个名称元素。我已经能够使用elements.each
打印出我想要的文字,但它看起来有些过分。
谢谢, 阿德里安
答案 0 :(得分:4)
尝试
xmlDoc.elements().to_a('file/name').first.text
然后添加一些错误处理(这不健全)。
to_a
返回一个REXML元素数组。使用first
检索。{
第一个(也可能是唯一的)元素。使用text
,您可以访问该元素文本内容。