我对处理XML完全不熟悉,但是突然需要处理一种我不熟悉的XML格式。标签中包含冒号。
<THING1:things type="Container">
<PART1:Id type="Property">1234</PART1:Id>
<PART1:Name type="Property">The Name</PART1:Name>
</THING1:things>
这是一个大文件,除了这里展示的内容外还有很多。希望有人对这种格式比较熟悉。有人知道如何处理这种类型的XML文档吗?
我不想采用一种蛮力解析文本的方式,但我似乎无法通过REXML或Hpricot取得任何进展,并且我怀疑这归咎于这些不寻常的标记。
我的Ruby代码:
require 'hpricot'
xml = File.open( "myfile.xml" )
doc = Hpricot::XML( xml )
(doc/:things).each do |thg|
[ 'Id', 'Name' ].each do |el|
puts "#{el}: #{thg.at(el).innerHTML}"
end
end
这段代码仅仅是从http://railstips.org/blog/archives/2006/12/09/parsing-xml-with-hpricot/中提取的。
我本来认为我可以从中找出一些有用的东西,但是这段代码没有返回任何内容。它没有产生错误,只是没有返回结果。
THING1
和PART1
是XML命名空间,需要进行声明。请参考http://en.wikipedia.org/wiki/XML_namespace。 - Jonas Elfström