XSLT:获取匹配子元素名称的父元素的xpath

时间:2014-12-17 01:58:59

标签: xslt xpath

我是xslt的新手。 我想获得匹配子节点的父节点(以...结尾)

示例XML:

可以包含父标记

之前和之后的元素

这里的结果应该是“父母” 查询:查找子元素的第一个父元素名称以smile结尾(“endwithsmile”)

我能够获得包含(“endswithsmile”)的元素,但不能以。 结束 - 不起作用。

<xsl:value-of select="(//*[contains(local-name(), 'Identifier')])"/>

我也尝试使用“../”来获得父母但没有工作。

以上问题的示例xml :::

<parent>
  <childendwithsmile>
    <test></test>
  </childendwithsmile>
</parent>    
<parent1>
  <childendwithsmile>
    <test></test>
  </childendwithsmile>
</parent1>

2 个答案:

答案 0 :(得分:0)

试试这个XPath:

//*[substring(name(), string-length(name()) - string-length('smile') + 1) = 'smile']/..

答案 1 :(得分:0)

@ Kiril的回答应该有效,但我更喜欢这种基于孩子选择父母的方法,而不是选择孩子并回到树上:

//*[*[substring(name(), string-length(name()) - string-length('smile') + 1) = 'smile']]
相关问题