我有以下xml
<AAA>
<BBB>Total</BBB>
</AAA>
使用xsl:copy-of标签使用以下xslt对其进行转换,因为我想使用xml在js中创建xml文档。
<xsl:template match="/">
<![CDATA[
function myFunc() {
xmlStr = ']]><xsl:copy-of select="/"/><![CDATA[';
}
]]>
</xsl:template>
输出看起来像这样
function myFunc() {
xmlStr = '<AAA>
<BBB>Total</BBB>
</AAA>';
}
JS不喜欢这样,因为缺少以分号结尾的分号。 如何修复我的xsl以获得以下结果:
function myFunc() {
xmlStr = '<AAA><BBB>Total</BBB></AAA>';
}
我尝试过normalize-space()和translate(),但是他们从xml中剥离了标签。
谢谢!
答案 0 :(得分:1)
<xsl:strip-space elements="AAA"/>
<xsl:template match="/">
<![CDATA[
function myFunc() {
xmlStr = ']]><xsl:copy-of select="AAA"/><![CDATA[';
}
]]>
</xsl:template>
在复制之前,它将从元素AAA
中删除所有空格。但是,您必须注意,因为它将从AAA
下的文本节点中删除任何内部间距,因此它有点过分。如果您有一些需要保留空间的元素,请在xsl:preserve-space
元素中将它们列为异常。但从你的例子来看,我认为这不会引起关注。