REXML - 如何提取单个元素
我正在用 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')
这会打印出
但我希望它简单地打印出 whatever
在这个 XML 中,永远只有一个名称元素。我已经能够使用 elements.each
打印出我想要的文本,但这似乎有点矫枉过正。
谢谢, 阿德里安
I am writing some acceptance tests in ruby which involve asserting the presence of values in response XML.
My XML is like this:
<?xml version="1.0"?>
<file xmlns:dvi=xxxxx>
<name>whatever</name>
</file>
There are other attributes but what is above should illustrate my point. Here is my ruby code:
xml = <the xml above>
xmlDoc = REXML::Document.new(xml)
puts xmlDoc.elements().to_a('file/name')
This prints out <name>whatever</name>
but I want it to simply print out whatever
In this XML there will only ever be one name element. I have been able to print out just the text I want using elements.each
but it seems like overkill.
Thanks,
Adrian
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试
然后添加一些错误处理(这不稳健)。
to_a
返回 REXML 元素数组。使用first
您可以检索第一个(据说是唯一的)元素。使用
text
您可以访问该元素的文本内容。Try
and then add some error treatment (this is not robust).
The
to_a
returns an array of REXML elements. Withfirst
you retrieve thefirst (and supposedly the only) element. With
text
you access that elements text content.