Symfony2 Twig和XSL

时间:2012-03-22 12:13:29

标签: xslt symfony twig

我正在使用symfony2和twig为模板开发应用程序。尝试在XSL文件中使用Twig时出现问题。这是带有Twig的XSL代码:

    <?xml version='1.0' encoding='ISO-8859-1'?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    {# src/Anotatzailea/AnotatzaileaBundle/Resources/views/Page/testuaanotatu.html.twig #}
    {% extends 'AnotatzaileaAnotatzaileaBundle::layout.html.twig' %}

    {% block title %}Testua anotatu{% endblock%}

    {% block body %}

    <div class="box600_lower">
     <xsl:template match="word"> 
       <label>
        <xsl:attribute name="class">
           <xsl:text>annotation_checkbox</xsl:text>
        </xsl:attribute>
        <xsl:attribute name="id">
           <xsl:text>Ascripta</xsl:text>
        </xsl:attribute>
        <xsl:attribute name="name">
           <xsl:text>Bscripta</xsl:text>
        </xsl:attribute>
        <xsl:attribute name="value">
           <xsl:text>Cscripta</xsl:text>
        </xsl:attribute>
        <xsl:attribute name="type">
           <xsl:text>checkbox</xsl:text>
        </xsl:attribute>
       </label>
       <label>
        <xsl:attribute name="class">
           <xsl:text>altcheckboxoff</xsl:text>
        </xsl:attribute>
        <xsl:attribute name="for">
           <xsl:text>Ascripta</xsl:text>
        </xsl:attribute>
        <xsl:attribute name="id">
           <xsl:text>Bscripta</xsl:text>
        </xsl:attribute>
        <xsl:value-of select="text()"/>
        <xsl:text> </xsl:text>
        </label>
     </xsl:template>
    </div>
    {% endblock %}
</xsl:stylesheet>

代码失败并显示下一条消息:

警告:XSLTProcessor :: importStylesheet():编译错误:文件/var/www/Symfony/web/MyXSLFile.xsl第12行元素模板

1 个答案:

答案 0 :(得分:1)

编译错误的原因很明显<xsl:stylesheet>元素不能包含任何(仅限非空白)文本节点子节点,并且在上面的代码中有:

    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    {# src/Anotatzailea/AnotatzaileaBundle/Resources/views/Page/testuaanotatu.html.twig #}
    {% extends 'AnotatzaileaAnotatzaileaBundle::layout.html.twig' %}

    {% block title %}Testua anotatu{% endblock%}

    {% block body %}

某些预处理器必须删除此文本,或者需要将它们包装在特殊元素或注释中。