使用 XML::Twig 处理嵌套元素
<cov>
<item>
<valo></valo>
<valt></valt>
<valtr></valtr>
</item>
<item>
<valo></valo>
<valt></valt>
<valtr></valtr>
</item>
<item>
<valo></valo>
<valt></valt>
<valtr></valtr>
</item>
</cov>
我正在尝试使用 twig 循环遍历每个项目的 valo 和 valtr - 我该怎么做?
到目前为止我已经有了这个,但是在子例程中如何指定正确的节点“valo”?
my $t = XML::Twig->new(twig_handlers => {'cov/item' => \&item });
my $url;
$t->parse($fileContent);
sub item {
my ($t, $item) = @_;
print $item->text . "\n";
}
<cov>
<item>
<valo></valo>
<valt></valt>
<valtr></valtr>
</item>
<item>
<valo></valo>
<valt></valt>
<valtr></valtr>
</item>
<item>
<valo></valo>
<valt></valt>
<valtr></valtr>
</item>
</cov>
I'm trying to use twig to loop through valo and valtr for each item - how can I do this?
I have this so far, but inside the subroutine how can I then specify the right node "valo"?
my $t = XML::Twig->new(twig_handlers => {'cov/item' => \&item });
my $url;
$t->parse($fileContent);
sub item {
my ($t, $item) = @_;
print $item->text . "\n";
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
下面的处理程序展示了一种检查 cov/item 节点子节点的方法:
另一种方法是使用 findnodes( ) 和 Twig 的类似 XPath 的语法来定位元素:
... 或者对于完整的 XPath 语法,请使用 XML::Twig::XPath 代替:
请参阅
XML::Twig
docs 了解此处使用的方法的详细信息。Here's a handler that shows a way to inspect the children of the
cov/item
nodes:Another approach is to use
findnodes( )
and Twig's XPath-like syntax to locate the elements:... Or for full XPath syntax, use XML::Twig::XPath instead:
See the
XML::Twig
docs for details of the methods used here.