2

我想遍了所有地方,但没有找到答案。

我正在使用一个 SOAP API,我希望只将数据库中的部分响应存储为 XML。

代码如下:

require 'rexml/document'
doc = REXML::Document.new(response.to_xml)
data = doc.root.elements['//SearchResult'].to_s

这为我提供了响应节点内的所有 XML。

我只想要那个节点的内容,而不是节点。

现在我得到:

<SearchResult>
    <bla></bla>
    <bla2></bla2>
</SearchResult>

但我只想要:

<bla></bla>
<bla2></bla2>

我正在使用带有 Rails 3.2.x 的 ruby​​ 1.9.3-head。

我在某处找到了一个 .value() 方法,但它不适用于元素,这是我从 XPath 搜索中得到的。

请指教。

4

1 回答 1

2
doc.root.elements['//SearchResult'].elements.each do | elem |
  p elem
end

<bla> ... </>
<bla2> ... </>

所以,随着

data = doc.root.elements['//SearchResult'].elements.map(&:to_s)

String您可以检索所有子节点的表示数组。

于 2012-04-03T12:26:58.650 回答