解析XML使用Ruby和引入nokogiri
问题描述:
我有以下XML结构:解析XML使用Ruby和引入nokogiri
<charsets>
<charset>
<name>ANSI_X3.4-1968</name>
<aliases>
<alias>iso-ir-6</alias>
<alias>ANSI_X3.4-1986</alias>
<alias>ISO_646.irv:1991</alias>
<alias>ASCII</alias>
<alias>ISO646-US</alias>
<alias>US-ASCII</alias>
<alias>us</alias>
<alias>IBM367</alias>
<alias>cp367</alias>
<alias>csASCII</alias>
</aliases>
</charset>
<charset>
<name>ISO-10646-UTF-1</name>
<aliases>
<alias>csISO10646UTF1</alias>
</aliases>
</charset>
</charsets>
我可以用抢使用Ruby和引入nokogiri中的name
节点的文本内容:
require 'nokogiri'
require 'open-uri'
doc = Nokogiri::XML(File.open("StandardCharsets.xml"))
@charsets = doc.css("charsets name").map {|node| node.children.text }
但是,什么我想要的是所有name
和alias
节点的文本内容按照源文档中显示的顺序排列。我尝试的一切都失败了
有没有人有一个很好的例子来说明如何做到这一点?
答
更改线路
@charsets = doc.css("charsets name").map {|node| node.children.text }
到
@charsets = doc.css("charsets name, charsets alias").map {|node| node.children.text }
为什么你有'需要“开uri''? – Adrian 2010-06-21 23:38:20