-2

可能重复:
在 perl 中使用嵌套标签进行 XML 解析

在以下 xml 结构中。我需要在 perl 中解析大小值的下限值和上限值,并且需要解析子标签中的 type 属性

<definition>
    <attributes>
        <children>
            <attributes>
                <children xsi:type="C_COMPLEX_OBJECT" >
                    <attributes>
                        <children>
                            <attributes>
                                <children><list><magnitude><lower>100</lower><upper>200</upper></magnitude></list></children>
                                <children><list><magnitude><lower>200</lower><upper>400</upper></magnitude></list></children>
                                <children><list><magnitude><lower>400</lower><upper>750</upper></magnitude></list></children>
                                <children><list><magnitude><lower>250</lower><upper>500</upper></magnitude></list></children>
                                <children><list><magnitude><lower>350</lower><upper>1000</upper></magnitude></list></children>
                            </attributes>
                        </children>
                    </attributes>
                </children>
               <children></children>
            </attributes>
        </children>
    </attributes>
</definition>
4

1 回答 1

1

这是一个使用 LibXML 解析此 xml 并获取所需值的小代码。

use XML::LibXML;
my $parser = XML::LibXML->new();
my $xml = $parser->parse_file('test.xml');

my @lower = $xml->find('//lower');
my @upper = $xml->find('//upper');

my $type = $xml->find('//children/@type');

@lower、@upper、$type 是节点。要提取字符串,请调用 to_lietral 子。例如 $type->to_literal。

于 2012-04-25T09:12:20.080 回答