我需要从 XML 文件中提取所有“NodeGroup”元素:
<Database>
<Get>
<Data>
<NodeGroups>
<NodeGroup>
<AssociateNode ConnID="6748763_2" />
<AssociateNode ConnID="6748763_1" />
<Data DataType="Capacity">2</Data>
<Name>Alpha</Name>
</NodeGroup>
<NodeGroup>
<AssociateNode ConnID="6748763_23" />
<AssociateNode ConnID="6748763_7" />
<Data DataType="Capacity">2</Data>
<Name>Charlie</Name>
</NodeGroup>
<NodeGroup>
<AssociateNode ConnID="6748763_98" />
<AssociateNode ConnID="6748763_12" />
<Data DataType="Capacity">2</Data>
<Name>Papa</Name>
</NodeGroup>
<NodeGroup>
<AssociateNode ConnID="6748763_8" />
<AssociateNode ConnID="6748763_45" />
<Data DataType="Capacity">2</Data>
<Name>Yankee</Name>
</NodeGroup>
</NodeGroups>
<System>
...
</System>
</Data>
</Get>
</Database>
如果我可以使用 python 和 BeautifulSoup,我会解析 xml 并调用类似:
node_group_array = soup.findAll("nodegroups")
但是我使用的是 Perl 和 Perl 的 XML 模块,所以我使用了 XML::Simple 的 XMLIn,递归遍历每个散列键,检查值是否是散列,检查它是否是“NodeGroup”散列等。
我认为 Perl 的 XML 模块之一中有类似 soup.findAll() 的东西,但我找不到它。如何在 Perl 中执行“soup.findAll('nodegroups')”?