キュアセブン技術ブログ

考えたこと,学んだことを書きます

【rails6】xmlの複数ある要素を配列でとってきたい

xmlの複数ある要素を配列でとってきたい。

array = []
(1.. doc.get_elements('response/a/b/c/d').size).each do |i|
    array.push(doc.elements["response/a/b/c[#{i}]/d"].text)
end

ってやったら動いた。

試したこと

sizeでfor回さなくてもいいはずなんだけどなんか動かなかった。

array = []
doc.elements.each('root/a/b') do |element|
    array.push(element.text)
end

arrayには [<b>...<b>,<b>...<b>,<b>...<b>] って入った(rails consoleで確認)

uxmilk.jp から引用

b以下のelementが得られているのでさらにelements['d']とかを行ってdまで掘る必要がありそう?するとtextが得られそう

といただいたので後日検証