当前位置: 首页 > 知识库问答 >
问题:

xpath/xslt-只匹配具有给定属性的第一个跟随祖先

詹钊
2023-03-14

我试图编写一个xpath表达式,该表达式只匹配包含给定属性的第一个后续祖先,但我找不到合适的xpath。一个简化的XML示例:

<root>
  <node href="L1_value_1">
    <node href="L2_value_1">
      <node href="L3_value_1">
        <node href="L4_value_1"/>
      </node>
    </node>
    <node/>
    <node href="L2_value_2"/>
    <node href="L2_value_3"/>
  </node>
  <node href="L1_value_2"/>
  <node href="L1_value_3"/>
</root>
<xsl:apply-templates select="ancestor::*/following-sibling::*[@href][1]"/>
<xsl:apply-templates select="ancestor::*[1]/following-sibling::*[@href][1]"/>

我如何在必要时遍历树并只捕获第一个匹配?

共有1个答案

孙梓
2023-03-14

对于你的第一个表达式,你需要在这里写...

 <xsl:apply-templates select="(ancestor::*/following-sibling::*[@href])[1]"/>

但是,也许您最好使用follow轴,而不是follow-sibling,然后您可以这样做...

<xsl:apply-templates select="following::*[@href][1]"/>
 类似资料:
  • 问题内容: 我正在尝试匹配模式: 以下仅匹配第一次出现的情况: 结果是: 但是,[使用pythex似乎可以正常工作](http://pythex.org/?regex=%3C–(%5B%5Cw%5Cs%5D%2B)–%3E(%5B%5Cs%5CS%5D*%3F)(%3F%3D%5Cn%3C–%7C%24)&test_string=%3C–%20Option%201%20–%3E%0ANice%20

  • 我有一个SVG文档,其中包含类似于以下内容的节点: 我想做的只是选择

  • 本文向大家介绍jquery 属性选择器(匹配具有指定属性的元素),包括了jquery 属性选择器(匹配具有指定属性的元素)的使用技巧和注意事项,需要的朋友参考一下 jQuery 选择器 在前面的章节中,我们展示了一些有关如何选取 HTML 元素的实例。 关键点是学习 jQuery 选择器是如何准确地选取您希望应用效果的元素。 jQuery 元素选择器和属性选择器允许您通过标签名、属性名或内容对 H

  • 我试图编写一个μn XSLT(1.0版)转换器,将输入的xml文件转换成另一种格式,运行一些用xml文件编写的xpath查询。Xpath查询根据从inptu文件中检索的系统和类型变量而变化。我做到了: 计算系统和类型后,我能够检索我的查询 xpath,如下所示: 如果我打印,一切看起来都不错: 当我尝试将$metadata_mapping作为xpath查询计算时: 我得到以下错误: 17:19:4

  • 我试图找到一个有两个子节点的web元素: 我尝试了来获取第一个元素,但对我来说不起作用。

  • 嗨,我有以下XML 标准是只复制“item-name”属性值为TShert、Ball或Bat的位置。所以生成的XML应该看起来像 我正在使用以下XSLT 但这不起作用。你能帮忙吗? 谢谢Nathan