REXML - 如何提取单个元素

发布于 2024-12-03 16:38:48 字数 564 浏览 3 评论 0原文

我正在用 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 但我希望它简单地打印出 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

澉约 2024-12-10 16:38:48

尝试

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

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

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

Try

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

and then add some error treatment (this is not robust).

The to_a returns an array of REXML elements. With first you retrieve the
first (and supposedly the only) element. With text you access that elements text content.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文