REXML - 如何提取单个元素

时间:2011-09-08 11:18:27

标签: ruby rexml

我正在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打印出我想要的文字,但它看起来有些过分。

谢谢, 阿德里安

1 个答案:

答案 0 :(得分:4)

尝试

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

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

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