我以前注意到这一点,但不记得我是如何绕过它的。在节点设置 XML 字符串时,EXSLT 似乎正在剥离属性。
这是一个人为的示例(为简洁起见,我删除了 XSLT 样式表标记,但 EXSLT 的公共库正在加载到命名空间中exsl
)。
XML
<xml>
<node />
<node />
<node />
</xml>
XSLT:
<xsl:template match="/">
<xsl:variable name='nodeset' select='exsl:node-set(xml/node)' />
<xsl:copy-of select='$nodeset' />
</xsl:template>
<xsl:template match='node'><node foo='bar' /></xsl:template>
结果
<node/><node/><node/>
Demo Playground(见输出源)