3

我正在用 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 中,永远只有一个 name 元素。我已经能够打印出我想要使用的文本,elements.each但这似乎有点过分了。

谢谢,阿德里安

4

1 回答 1

3

尝试

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

然后添加一些错误处理(这不可靠)。

返回一个 REXML 元素的to_a数组。随着first您检索第一个(并且应该是唯一的)元素。随着text您访问该元素的文本内容。

于 2011-09-08T11:24:31.240 回答