使用文本和标记在单行上编写XML

时间:2013-09-25 15:27:21

标签: xml xslt xslt-1.0

我有一个XML文件,XSLT将其转换为HTML文件。我想在一个javascript变量中编写我的XML,在一行上,其所有标记和HTML文件中的文本。

例如,我想改变这个:

<root>
   <groupe>
      <link>
        ...
      </link>
   </groupe> 
</root>

成:

<script>
   var xml = '<root><groupe><link>...</link></groupe></root>';
</script>

我知道<xsl:copy-of ... />保留文本和标记,但我无法摆脱换行符和空格。我见过normalize-space选项但是

<xsl:template match="@* | node()" >
   <xsl:copy-of select="normalize-space(.)" />
</xsl:template>

打印没有标签的输出XML。

1 个答案:

答案 0 :(得分:3)

我认为你可以使用像

这样的东西
...
<script>
    var xml = '<xsl:copy-of select="." />'
</script> 
...

在你的模板中。

你需要在xsl:output标签中声明属性indent =“no”,例如

<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>

可能

<xsl:strip-space elements="*"/>

也可能是有益的。