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>

Rails3.2.xでruby1.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 に答える