【问题标题】:Get nearest ancestor by tag name in xslt通过xslt中的标签名称获取最近的祖先
【发布时间】:2019-01-10 11:51:45
【问题描述】:

我有以下结构的xml文件

<abc:element name="Super A">
    ...(some of other tags)
        <abc:element name="A">
           ...(some of other tags)
              <abc:element name="1A">
                    ...(some of other tags)
                        <abc:element name="ABC">
                            <abc:docs>
                                <abc:text> 
                                     Some text
                                </abc:text>
                            </abc:docs>
                        </abc:element>   
                    ...(some of other tags)
               </abc:element>
           ...(some of other tags)
        </abc:element>
    ...(some of other tags)
</abc:element>

我在 abc:element name="ABC"> 节点中,我只想获取带有标签 &lt;abc:element&gt; 的最近祖先。在上面的例子中是&lt;abc:element name="1A"&gt;。我尝试了一些方法,但都没有返回预期的结果。示例我尝试使用这个:&lt;xsl:value-of select="ancestor::abc:element[1]"/&gt; 但这不仅返回最近的所有元素。如何得到我预期的结果?在 xslt 中可以吗?

【问题讨论】:

  • 您能否编辑您的帖子,向我们展示最小但完整的 XML、XSLT 示例、您想要的输出以及您收集到的关于您使用哪个软件运行它的信息?路径ancestor::abc:element[1] 乍一看是对的,不知道哪里出了问题。
  • 您的问题无法从您的描述中重现:请参阅:xsltransform.hikmatu.com/bFDb2BS/1 所以您必须做一些与您描述的不同的事情。
  • 我的例子中的属性“name”只是为了简化描述我的问题而添加的。我只知道我在&lt;abc:element&gt; 标签中,我想去最近的祖先标签&lt;abc:element&gt;
  • MY例子中的name属性用来说明选择正确。

标签: xslt ancestor


【解决方案1】:

尝试祖先::node()[1]/abc:element

【讨论】:

  • 1.这将返回上下文节点。 2. 在提出解决方案之前,让我们看看实际问题是什么。
猜你喜欢
  • 1970-01-01
  • 2018-08-02
  • 1970-01-01
  • 2010-09-17
  • 2013-06-03
  • 1970-01-01
  • 2019-12-04
  • 1970-01-01
  • 2017-04-23
相关资源
最近更新 更多