私は次のXMLファイルを持っています:
<Response Version="X">
<Status StatusCode = "OK">
<Internal>
<SP>
<URL>SP_url_1</URL>
</SP>
<SP>
<URL>SP_url_2</URL>
</SP>
</Internal>
<Response>
すべてのURL要素のテキストを配列で取得したいと思います。
私は以下を実装しました:
...HTTPGETリクエストを実行します...
response_xml = REXML::Document.new(response.body).root
if response_xml.nil? or response_xml.name != 'Response'
raise ParseError, "Invalid service discovery response!"
end
status_code = response_xml.elements['Status'].attribute('StatusCode').value
if status_code == 'OK'
urls = response_xml.elements.each('//URL') { |u| u }
end
urls
この行に関してresponse_xml.elements.each('//URL') { |u| u }
、配列内のすべてのURL要素を取得するためのよりクリーンな方法をお勧めできますか?REXMLメソッドを介して行うより賢明な方法があるかもしれませんが、現時点ではそれを見ることができません。
その他のREXMLまたは一般的なコードの推奨事項は大歓迎です。