有没有办法让XSLT回应出来的XML?

And*_*son 5 xml reflection xslt serialization design-patterns

我正在使用XSLT来转换XML.有没有办法让XSLT吐出供给它的XML?就像是:

<xsl:echo-xml />
Run Code Online (Sandbox Code Playgroud)

Dim*_*hev 8

基本上我使用一些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设计模式之一.它非常容易复制所有节点,但是执行特定处理的特定节点(例如重命名删除,修改内容,......等)/


Luc*_*ero 6

以下将完整的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)