【问题标题】:XSLT: xpath to get parent element on matched child element nameXSLT:在匹配的子元素名称上获取父元素的 xpath
【发布时间】:2014-12-17 01:58:59
【问题描述】:

我是 xslt 的新手。 我想获取匹配的子节点的父节点(以)结束

示例 XML:

父标签前后可以有元素

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

我可以获得包含 ("endswithsmile") 但不以 . end-with 不起作用。

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

我也尝试使用“../”来获取父级,但没有奏效。

上述问题的示例 xml :::

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

【问题讨论】:

  • ends-with 函数仅在 XPath 2.0 或更高版本中可用。

标签: xslt xpath


【解决方案1】:

试试这个 XPath:

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

【讨论】:

    【解决方案2】:

    @Kiril 的回答应该有效,但我更喜欢这种根据子级选择父级的方法,而不是选择子级并返回树:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-20
      • 2020-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-09
      • 1970-01-01
      相关资源
      最近更新 更多