会 员 登 录
热 门 文 章
相 关 文 章
- 没有文章
Tags(标签)
如何在XSL中得到某节点到根节点的全路径的所有节点?
要在XSL中得到某节点到根节点的带全部路径的节点,可以对该节点的路径进行copy,包括所有节点类型。下面就是具体实现的例子。
GetFullPathNodes.XML
<?<a href="http://dev.21tx.com/web/xml/" target="_blank">XML</a> version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="GetFullPathNodes.xsl"?>
<DATA>
<x1/>
<x2>
<x21>
<x211>x211</x211>
<x212>x212</x212>
<x213>孟子E章</x213>
</x21>
</x2>
<x3>
<x31/>
</x3>
</DATA>
GetFullPathNodes.xsl
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" omit-xml-declaration="yes"/>
<!-- 确定哪个节点将被与祖先节点一起复制 -->
<xsl:variable name="MyNodes" select="//x211"/>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="*">
<xsl:if test="$MyNodes[count(ancestor::*) = count(ancestor::* | current())] or
count(.| $MyNodes) = count($MyNodes)">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:if>
</xsl:template>
<xsl:template match="text() | comment() | processing-instruction()">
<xsl:copy/>
</xsl:template>
</xsl:stylesheet>
结果将象下面所示:
<DATA>
<x2>
<x21>
附件:
没有附件
0
票
顶一下
票
顶一下
0
票
踩一下
票
踩一下
| 文 章 评 论 | ||||||||
| ||||||||



您现在的位置: