xml::Twig 和 findnodes
我有以下 xml 代码片段:
<a>
<b> textb <b>
<c> textc <c>
<d> textd <d>
<\a>
<a>
<b> textb <b>
<c> textc <c>
<d> textd <d>
<\a>
我使用 xml::twig
对其进行解析,如下所示:
my @c= map { $_->text."\n" } $_->findnodes( './a/');
并将 textbtextctextd 作为数组的一个元素。是否有一个选项可以使用 findnodes textb,textc,textd 作为 3 个数组元素而不是一个?
I have the following xml code snippet :
<a>
<b> textb <b>
<c> textc <c>
<d> textd <d>
<\a>
<a>
<b> textb <b>
<c> textc <c>
<d> textd <d>
<\a>
I use xml::twig
to parse it as below :
my @c= map { $_->text."\n" } $_->findnodes( './a/');
and get the textbtextctextd as one element of the array. Is there an option to get with findnodes
textb,textc,textd as 3 array elements and not one?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在表达式末尾使用星号:
“*”匹配任何标记,因此您将获得 3 个子节点 - 您当前的示例仅匹配“a”,其文本是以下内容的串联嵌套元素的文本。
Use the star at the end of the expression:
The '*' matches any tag, so you get the 3 child nodes - your current example only matches the 'a', and its text is the concatenation of the text of the nested elements.
在 XML::Twig 3.39(及更高版本)中,您可以使用
findvalue
获取字符串数组。in XML::Twig 3.39 (and above) you can use
findvalue
to get an array of strings.