Xml xsl模板匹配xpath中的或条件不起作用
我正在尝试编写一个xsl,它将返回元素及其直接子元素的XPath 示例XMLXml xsl模板匹配xpath中的或条件不起作用,xml,xslt,xpath,xslt-1.0,Xml,Xslt,Xpath,Xslt 1.0,我正在尝试编写一个xsl,它将返回元素及其直接子元素的XPath 示例XML <level0> <level1> <level2> <level3> <level4/> </level3> <level3/> </level2> </level1
<level0>
<level1>
<level2>
<level3>
<level4/>
</level3>
<level3/>
</level2>
</level1>
</level0>
我的XSL
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" media-type="text/plain"/>
<xsl:template match="@*|comment()|text()|processing-instruction()"/>
<xsl:template match="//level2|//level2/*">
<xsl:for-each select="ancestor-or-self::*">
<xsl:value-of select="concat('/',name(.))"/>
</xsl:for-each>
<xsl:text>
</xsl:text>
</xsl:template>
</xsl:stylesheet>
如何获得所需的结果?只需在
代码>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" media-type="text/plain"/>
<xsl:template match="@*|comment()|text()|processing-instruction()"/>
<xsl:template match="//level2|//level2/*">
<xsl:for-each select="ancestor-or-self::*">
<xsl:value-of select="concat('/',name(.))"/>
</xsl:for-each>
<xsl:text>
</xsl:text>
</xsl:template>
</xsl:stylesheet>
/level0/level1/level2
<xsl:template match="//level2|//level2/*">
<xsl:for-each select="ancestor-or-self::*">
<xsl:value-of select="concat('/',name(.))"/>
</xsl:for-each>
<xsl:text>
</xsl:text>
<xsl:apply-templates/>
</xsl:template>
/level0/level1/level2
/level0/level1/level2/level3
/level0/level1/level2/level3