xml - 使用Perl从xml文件中提取字符串

标签 xml perl xml-parsing

<分区>

我需要使用 Perl 提取放置在 association rightmh= 之后的字符串。

在此示例中:“0x42001dc”和“0x4200000”。

每个字符串都将被添加到同一个数组中。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<association-response-list xmlns="http://url.com">
<association-responses>
<association rightmh="0x42001dc" leftmh="0x4055246" rh="0x1003b"/>
<association rightmh="0x4200000" leftmh="0x455246" rh="0x1003b"/>
</association-responses>
</association-response-list>

最佳答案

使用 XML 解析器,例如 XML::LibXML :

#!/usr/bin/perl
use warnings;
use strict;

use XML::LibXML;

my $xml = << '__XML__';
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<association-response-list xmlns="http://url.com">
<association-responses>
<association rightmh="0x42001dc" leftmh="0x4055246" rh="0x1003b"/>
<association rightmh="0x4200000" leftmh="0x455246" rh="0x1003b"/>
</association-responses>
</association-response-list>
__XML__

my $doc = 'XML::LibXML'->load_xml(string => $xml);

my @rightmh;
push @rightmh, $_->value for $doc->findnodes('//@rightmh');
print "@rightmh\n";

关于xml - 使用Perl从xml文件中提取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18976662/

相关文章:

c# - 无法通过 .NET System.Xml.Xsl.XslCompiledTransform 将 XML 转换为 HTML

regex - 在 Perl 中,如何打印从文件中读取的行,并删除了可选的前导空格?

perl - "cpanm PHP"失败

python - lxml + 文件负载 = 随机序列化错误 : IO_WRITE

c++ - 将 get_value 与 Boost 的属性树一起使用时出现问题

java - 在进入下一个 Activity 之前我无法绘制 UI

java - 我希望外部链接在我的浏览器中打开

javascript - 如何使用 Ajax 按用户提供的值搜索 xml 文档

perl - 如何在 Perl 的 Term::Shell 中自定义制表符补全?

android - 如何在 Android 的 Pull Parser 中获取具有匹配标签的 XML 内容?