我有一个XML文件,其中包含一个ID和另一个包含相同ID的XML文件。 我想交叉引用这些文件并从第二个文件中提取信息。 第一个文件只包含我需要的那些ID。 例如,第一个文件包含ID的345,350,353,356,,第二个文件包含ID的345,346,347,348,349,350 .... 我想从第二个文件中提取数据节点及其所有子节点。XML交叉引用
的第一个文件结构:
<data>
<node>
<info>info</info>
<id>345</id>
</node>
<node2>
<node3>
<info2>info</info2>
<id>2</id>
</node3>
<otherinfo>1</otherinfo>
<text type = "02">
<role>info</role>
<st>1</st>
</text>
</node2>
</data>
第二个文件结构:
<data>
<node>
<info>info</info>
<id>345</id>
</node>
<node2>And a bunch of other nodes</node2>
<node2>And a bunch of other nodes</node2>
<node2>And a bunch of other nodes</node2>
</data>
我已经尝试了红宝石/引入nokogiri解决方案,但我似乎无法走得很远。我愿意接受任何脚本语言的解决方案。
您可能对[XPointer](http://www.w3.org/TR/xptr-framework/)感兴趣,并检查您使用的XML库是否支持它。 否则,您将不得不解析第二个文件,并将id/node对保存在数据结构中(Python中的dict,Perl中的hash)。然后你解析第一个并查找ID。 – 2011-04-29 08:25:34