我认为我到处都是,但没找到答案。
我正在使用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搜索中得到的。
请告知。
答案 0 :(得分:2)
doc.root.elements['//SearchResult'].elements.each do | elem |
p elem
end
给出
<bla> ... </>
<bla2> ... </>
所以,用
data = doc.root.elements['//SearchResult'].elements.map(&:to_s)
您可以检索所有子节点的String
表示数组。