And*_*son 5 xml reflection xslt serialization design-patterns
我正在使用XSLT来转换XML.有没有办法让XSLT吐出供给它的XML?就像是:
<xsl:echo-xml />
Run Code Online (Sandbox Code Playgroud)
基本上我使用一些XSLT来转换XML,有没有办法让XSLT吐出供给它的XML?就像是:
最简单,最短的方式:
<xsl:copy-of select="/"/>
Run Code Online (Sandbox Code Playgroud)
这将输出当前的XML文档.
<xsl:copy-of select="."/>
Run Code Online (Sandbox Code Playgroud)
这将输出以当前节点为根的子树.
但是,XSLT程序员主要使用以下(身份规则):
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
如果这是样式表中唯一的模板,则将输出应用了转换的完整XML文档作为结果.
使用标识规则是最基本的XSLT设计模式之一.它非常容易复制所有节点,但是执行特定处理的特定节点(例如重命名删除,修改内容,......等)/
以下将完整的XML复制到结果树:
<xsl:copy-of select="." />
Run Code Online (Sandbox Code Playgroud)
如果你想将它发送到"消息输出",你可以像这样包装:
<xsl:message>
<xsl:copy-of select="."/>
</xsl:message>
Run Code Online (Sandbox Code Playgroud)