【发布时间】:2013-12-03 15:06:00
【问题描述】:
我是 Perl 的 XML 模块的初学者,不幸的是我还没有找到有用的解决方案或手册来解决我的问题。我想做的是在不知道其结构和硬编码其标签/节点的情况下解析任何 XML 文件。我想获取节点的名称和值以及属性以供进一步处理。
目前我只能解析带有硬编码节点名称的 XML,这意味着每当弹出新的 XML 文件时我都需要重新编程解析器。
有人可以帮帮我吗?
谢谢。
目前我正在使用 XML::Simple 和以下代码:
my $xml = new XML::Simple->XMLin( $list_file );
foreach my $xmls (@{$xml->{channel}->{item}}) {
if (exists $xmls->{title}) { };
if (exists $xmls->{value}) { };
if (exists $xmls->{category}) { };
if (exists $xmls->{description}) { };
}
【问题讨论】:
-
您使用的是哪个模块(例如 XML dom)?另外,请考虑分享您迄今为止尝试过的 Perl 代码,即使它没有成功。
-
您可以使用 XML::Simple 并遍历其输出。
-
XML::Simple 是最难使用的模块,特别是如果您事先不知道其结构(可以通过
ForceArray => 1, KeyAttr => []缓解)
标签: xml perl xml-parsing