gpt4 book ai didi

xml - 列出或计算从当前节点到每个叶节点的具有某些属性的路径

转载 作者:行者123 更新时间:2023-12-03 16:21:59 25 4
gpt4 key购买 nike

这是使用XSLT列出或计数的某种方式
从当前节点到每个叶节点的路径
根据一些标准。
例如在特定情况下
这里假设当前节点是“ t”
以及从当前节点到每个叶节点的路径
“ trg”属性。
在下面例如

<root>
<t>
<a1>
<b1 trg="rr">
<c1></c1>
</b1>
<b2>
<c2></c2>
</b2>
</a1>
<a2>
<b3>
<c3></c3>
</b3>
</a2>
</t>
</root>


这是具有此属性的唯一路径
t / a1 / b2 / c2和t / a2 / b3 / c3

但不是t / a1 / b1 / c1

最佳答案

最简单的方法是:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="text()"/>
<xsl:template match="text()" mode="search"/>
<xsl:template match="t">
<xsl:apply-templates mode="search">
<xsl:with-param name="pPath" select="name()"/>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="*" mode="search">
<xsl:param name="pPath"/>
<xsl:apply-templates mode="search">
<xsl:with-param name="pPath" select="concat($pPath,'/',name())"/>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="*[not(*)]" mode="search">
<xsl:param name="pPath"/>
<xsl:value-of select="concat($pPath,'/',name(),'&#xA;')"/>
</xsl:template>
<xsl:template match="*[@trg]" mode="search" priority="1"/>
</xsl:stylesheet>


输出:

t/a1/b2/c2
t/a2/b3/c3


注意:完全拉式。路径搜索开始的规则( t模式)。隧道参数( *模式)的规则。输出叶子路径( *[not(*)]模式)的规则。递归中断条件( *[@trg]模式)的规则。

关于xml - 列出或计算从当前节点到每个叶节点的具有某些属性的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5546870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com