如何使用xslt在对象中设置值?

时间:2017-01-18 16:21:03

标签: xml xslt xslt-1.0 xslt-2.0 xslt-grouping

你能告诉我如何使用xslt在对象属性中设置值吗?

我试试这个

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
    <xsl:output method="html" doctype-public="XSLT-compat" omit-xml-declaration="yes" encoding="UTF-8" indent="yes" />

    <xsl:template match="/">
    <script type="text/javascript">
         <![CDATA[
       var obj ={
        a:"mm",
        catalog:<xsl:value-of select="catalog"/>
        }
         ]]>
    </script>
    <xsl:value-of select="catalog"/>
    </xsl:template>
    </xsl:transform>

http://xsltransform.net/6rewNyu

我想创建一个对象,我想在catalog属性

中设置它的值

为什么它不起作用?

catalog:<xsl:value-of select="catalog"/>

1 个答案:

答案 0 :(得分:1)

您不能将要执行的XSLT代码放入CDATA部分,因此只需使用

即可
<script type="text/javascript">

   var obj ={
    a:"mm",
    catalog: '<xsl:value-of select="normalize-space(catalog)"/>'
    }

</script>

如果你想生成Javascript代码,其中部分代码是由XSLT计算的。