REXML – 如何提取单个元素

我正在ruby中编写一些验收测试,其中涉及在响应XML中声明值的存在。

我的XML是这样的:

  whatever  

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

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

这打印出whatever但我希望它只是打印出来的whatever

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

谢谢,阿德里安

尝试

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

然后添加一些error handling(这不是很健壮)。

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