【发布时间】:2017-02-09 20:37:45
【问题描述】:
我有以下 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')
但这不起作用。看起来tag[attr=value] 语法实际上只适用于属性。
有没有一种简单的方法可以做我想做的事?
【问题讨论】:
-
这是一个错误,是的,使用
/而不是 ` > ` 作为标签分隔符... -
TitleDetail[TitleType="01"]means "一个TitleDetail元素,其TitleType属性值正好等于01。" 显然不正确。不幸的是,您不能使用对at的单个调用,因为子查询是有限的检查属性,并且没有一个选择器提供检查节点文本的方法。
标签: xml perl dom mojolicious