加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl XML :: Twig问题请

发布时间:2020-12-16 06:09:05 所属栏目:大数据 来源:网络整理
导读:我在Perl中使用 XML :: Twig库,我不太确定我是如何(或者甚至)我可以做到以下几点.我还没有完成代码,因为我甚至不知道从哪里开始.我真的追求一些想法,我可以(希望)从那里开始…… 所以我想使用XML :: Twig来查找值“This_Is_My_Name”,它是标记“MyClass.Name
我在Perl中使用 XML :: Twig库,我不太确定我是如何(或者甚至)我可以做到以下几点.我还没有完成代码,因为我甚至不知道从哪里开始.我真的追求一些想法,我可以(希望)从那里开始……

所以我想使用XML :: Twig来查找值“This_Is_My_Name”,它是标记“MyClass.Name”的子值.我想我可以做这一部分,但指导将不胜感激.

然后我想得到“MyClass.Code”LinkValue号,在下面的例子中是“987654321”.

希望有道理.所以我不知道如何以这种方式走动.

请帮忙 :)

所以我的XML文档如下,

<Object Class="MyClass" Id="123456789">
    <Property Name="MyClass.Link">
        <LinkValue>
            <Id>2468</Id>
        </LinkValue>
    </Property>
    <Property Name="MyClass.Code">
        <LinkValue>
            <Id>987654321</Id>
        </LinkValue>
    </Property>
    <Property Name="MyClass.Name">
        <StringValue>This_Is_My_Name</StringValue>
    </Property>
</Object>

解决方法

您可以使用xpaths来提取这些值. This_Is_My_Name的xpath是/Object/Property[@Name=”MyClass.Name”]/StringValue,LinkValue的xpath是/Object/Property[@Name=”MyClass.Code”]/LinkValue/Id.代码是:

use XML::Twig;

my $twig = XML::Twig->new();

# parse the file
$twig->parsefile("x.xml");

# look for StringValue
@nodes=$twig->findnodes('/Object/Property[@Name="MyClass.Name"]/StringValue');
$stringVal=pop(@nodes)->text();
print $stringVal."n";

# look for LinkValue
@nodes=$twig->findnodes('/Object/Property[@Name="MyClass.Code"]/LinkValue/Id');
$linkVal=pop(@nodes)->text();
print $linkVal;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读