【问题标题】:REXML - How to extract a single elementREXML - 如何提取单个元素
【发布时间】:2011-09-08 11:18:27
【问题描述】:

我正在用 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')

这会打印出&lt;name&gt;whatever&lt;/name&gt;,但我希望它只是打印出whatever

在这个 XML 中,永远只有一个名称元素。我已经能够使用elements.each 打印出我想要的文本,但这似乎有点过头了。

谢谢, 阿德里安

【问题讨论】:

    标签: ruby rexml


    【解决方案1】:

    试试

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

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

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

    【讨论】:

    • 感谢您的建议。对于这个特定的测试,只有一个名称(它正在获取文件的元数据)。我还有其他测试会返回多个元素,但我想我现在知道该做什么了。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-21
    相关资源
    最近更新 更多