0
我有以下XMLXSLT通节点到CDATA JS
<AAA>
<BBB>Total</BBB>
</AAA>
使用xsl与下面的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>';
}
我试过正常化空间()和翻译(),但他们从XML剥去标签。
谢谢!
@davomarti:确保您的XML永远不会包含任何单引号,否则您的JavaScript将会中断。特别是,确保你的XML不包含用户生成的数据,因为这种方法具有很高的XSS风险。最好的方法是通过AJAX从服务器中单独请求XML,而不是直接将它注入到JS代码中。 – Tomalak 2010-03-15 19:40:01
感谢Welbog, 这就是我一直在寻找的。 Tomalak, 这很有意义,但我在一个框架内工作,我能做的最好的就是通过xsl获取xml。 – davomarti 2010-03-15 20:32:43
@davomarti - 提示:如果答案解决了您的问题,您应该将其标记为已接受。 – Tomalak 2010-03-16 10:12:58