我正在使用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行元素模板
答案 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 %}
某些预处理器必须删除此文本,或者需要将它们包装在特殊元素或注释中。