在XSLT上,是否有简单的方法输出变量的所有内容?XSL输出everythin包括节点名称,属性,文本
我的变量是这样的:
<node a="a">
a
<node>
b
</node>
</node>
所以我想输出它,因为它包括标签名称,属性,文本等
谢谢!
AND:
是有可能不输出一些标签吗?如
<a>aa
<b>bb
<c>cc</c></b></a>
我想避免输出b标签,但想输出c?谢谢!
在XSLT上,是否有简单的方法输出变量的所有内容?XSL输出everythin包括节点名称,属性,文本
我的变量是这样的:
<node a="a">
a
<node>
b
</node>
</node>
所以我想输出它,因为它包括标签名称,属性,文本等
谢谢!
AND:
是有可能不输出一些标签吗?如
<a>aa
<b>bb
<c>cc</c></b></a>
我想避免输出b标签,但想输出c?谢谢!
好问题,+1。
这种转变提供了答案到这两个问题:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:variable name="vVarNode" select="/*/node"/>
<xsl:variable name="vVarA" select="/*/a"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/">
<xsl:copy-of select="$vVarNode"/>
===========
<xsl:apply-templates select="$vVarA"/>
</xsl:template>
<xsl:template match="b">
<xsl:apply-templates select="*"/>
</xsl:template>
</xsl:stylesheet>
当此XML文档的应用(从两个变量是 “装”):
<doc>
<node a="a">
a
<node>
b
</node>
</node>
<a>aa
<b>bb
<c>cc</c>
</b>
</a>
</doc>
想要的,正确的结果产生(第一个变量的内容是“原样”输出,而b
及其文本节点子节点从第二个变量的输出内容中删除):
<node a="a">
a
<node>
b
</node>
</node>
===========
<a>aa
<c>cc</c>
</a>
你是什么意思的“输出”?你的意思是“包含在结果文件中”? –
是的,对不起,我不习惯功能性编程可能会用错词:) – Ataman