html – 通过xslt和xml错误呈现的xforms

前端之家收集整理的这篇文章主要介绍了html – 通过xslt和xml错误呈现的xforms前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道这个问题听起来像是“从过去”的事情,但我需要做一个功课,我不能让它工作.

问题如下:

我有从数据库调用的xml数据,我使用xslt在浏览器上呈现xforms文档,顺便说一下它的旧firefox 3.6只是为了使用xforms扩展而安装的.
它正确呈现xforms文档,但控件无法正常工作,我无法提交表单,实例数据也没有填入输入.

我的xsl样式表如下:

<xsl:stylesheet version="1.0"
            xmlns="http://www.w3.org/1999/xhtml"
            xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
            xmlns:xf="http://www.w3.org/2002/xforms">
<xsl:output method="xml"
indent="yes"
omit-xml-declaration="yes"
media-type="application/xhtml+xml"
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" />
<xsl:template match="/">
    <html xmlns="http://www.w3.org/1999/xhtml" xmlns:xf="http://www.w3.org/2002/xforms" dir="ltr" lang="es">
        <head>
            <xf:model>
                <xf:instance>
                    <data xmlns="">
                        <iCargo_Id>1</iCargo_Id>
                        <sCargo_Desc>lalala</sCargo_Desc>
                        <iConcurrencia_Id>1</iConcurrencia_Id>
                    </data>
                </xf:instance>
                <xf:submission id="prueba" action="EditarCargos.aspx" method="post"/>
            </xf:model>

            <link href="../css/style.css" rel="stylesheet" type="text/css" />
            <title><![CDATA[Adicionar Cargos]]></title>
        </head>
        <body>
            <div class="header"></div>
            <div class="menu">
                <a href="../empleados/editarempleados.aspx"><![CDATA[Empleados]]></a>
                <a href="../horarios/editarhorarios.aspx"><![CDATA[Horarios]]></a>
                <a href="../jornadas/editarjornadas.aspx"><![CDATA[Jornadas]]></a>
                <a href="../cargos/editarcargos.aspx"><![CDATA[Cargos]]></a>
                <a href="../usuarios/editarusuarios.aspx"><![CDATA[Usuarios]]></a>
                <a href="../profesiones/editarprofesiones.aspx"><![CDATA[Profesiones]]></a>
                <a href="../reportes/ReporteMarcaciones.aspx"><![CDATA[Rep. de Marcaciones]]></a>
                <a href="../cerrarSesion.aspx"><![CDATA[Cerrar Sesión]]></a>
            </div>
            <div id="main">
                <div class="mainTitle">
                    <![CDATA[Adicionar Cargos]]>
                </div>
                <div>
                    <xf:input ref="sCargo_Desc">
                        <xf:label><![CDATA[Cargo]]></xf:label>
                    </xf:input>
                    <div>
                        <xf:submit submission="prueba">
                            <xf:label><![CDATA[Guardar Cambios]]></xf:label>
                        </xf:submit>
                    </div>
                </div>
                <div>

                    <a class="cmdSecond" href="EditarCargos.aspx"><![CDATA[Volver]]></a>
                </div>
            </div>
        </body>
    </html>
</xsl:template>
<xsl:template match="cargo[iCargo_Id]">
    <iCargo_Id>
        <xsl:value-of select="iCargo_Id"/>
    </iCargo_Id>
    <sCargo_Desc>
        <xsl:value-of select="sCargo_Desc"/>
    </sCargo_Desc>
    <iConcurrencia_Id>
        <xsl:value-of select="iConcurrencia_Id"/>
    </iConcurrencia_Id>
</xsl:template>
<xsl:template match="cargo[not(iCargo_Id)]">
    <iCargo_Id></iCargo_Id>
    <sCargo_Desc></sCargo_Desc>
    <iConcurrencia_Id></iConcurrencia_Id>
</xsl:template>
</xsl:stylesheet>

我的xml代码如下所示:

<cargo>
    <iCargo_Id>1</iCargo_Id>
    <sCargo_Desc>Jefe de Sistemas</sCargo_Desc>
    <iConcurrencia_Id>1</iConcurrencia_Id>
</cargo>

我认为问题是< xsl:output method =“xml”属性
,因为xforms需要xhtml来渲染,但是当我创建它时,firefox会抛出一个XSLT异常.

请帮忙!我到处搜索,我发现它有一些与firefox中的bug有关但我希望有另一种方法可以使这项工作,你的帮助将非常感激和抱歉我的英语,我正在学习:D

解决方法

好吧,我没有找到解决方案,但使用了一种解决方法来使这项工作.

由于问题出在Firefox上,我不得不以另一种方式渲染样式表,所以我使用aspnet在代码后面预渲染样式表(我忘了提到我正在使用它),然后我把它写到了使用Response.Write的页面,它使用html作为xsl:output方法的魅力

猜你在找的HTML相关文章