我有以下 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 元素的文本。
我实现了以下内容:
...执行 HTTP GET 请求...
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 或一般代码建议。