在Perl中使用Mojo :: DOM的XML模式,如何匹配子标签的内容?
发布时间:2020-12-15 23:24:38 所属栏目:大数据 来源:网络整理
导读:我有以下 XML: Product ... TitleDetail TitleType01/TitleType TitleElement TitleElementLevel01/TitleElementLevel TitleTextThis is the title I'm looking for/TitleText /TitleElement /TitleDetail .../Product (如果你好奇的话,这是ONIX.) 我想提取
我有以下
XML:
<Product> ... <TitleDetail> <TitleType>01</TitleType> <TitleElement> <TitleElementLevel>01</TitleElementLevel> <TitleText>This is the title I'm looking for</TitleText> </TitleElement> </TitleDetail> ... </Product> (如果你好奇的话,这是ONIX.) 我想提取01类型的标题. say $dom->at('TitleDetail[TitleType="01"] > TitleElement > TitleText') 但这不起作用.看起来标签[attr = value]语法实际上只适用于属性. 有一种简单的方法可以做我想要的吗? 解决方法
它可以用Mojo :: DOM完成,但它很长.有几次Mojo :: Collections在那里,所以你需要得到第一个元素.
use Mojo::DOM; my $dom = Mojo::DOM->new->xml(1)->parse($xml); say $dom->find("TitleType")->grep(sub{ $_->text eq "01"})->first ->following("TitleElement")->first->at("TitleText")->text; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |