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

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

问题如下:

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

我的xsl样式表如下:

  1. <xsl:stylesheet version="1.0"
  2. xmlns="http://www.w3.org/1999/xhtml"
  3. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  4. xmlns:xf="http://www.w3.org/2002/xforms">
  5. <xsl:output method="xml"
  6. indent="yes"
  7. omit-xml-declaration="yes"
  8. media-type="application/xhtml+xml"
  9. doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
  10. doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" />
  11. <xsl:template match="/">
  12. <html xmlns="http://www.w3.org/1999/xhtml" xmlns:xf="http://www.w3.org/2002/xforms" dir="ltr" lang="es">
  13. <head>
  14. <xf:model>
  15. <xf:instance>
  16. <data xmlns="">
  17. <iCargo_Id>1</iCargo_Id>
  18. <sCargo_Desc>lalala</sCargo_Desc>
  19. <iConcurrencia_Id>1</iConcurrencia_Id>
  20. </data>
  21. </xf:instance>
  22. <xf:submission id="prueba" action="EditarCargos.aspx" method="post"/>
  23. </xf:model>
  24.  
  25. <link href="../css/style.css" rel="stylesheet" type="text/css" />
  26. <title><![CDATA[Adicionar Cargos]]></title>
  27. </head>
  28. <body>
  29. <div class="header"></div>
  30. <div class="menu">
  31. <a href="../empleados/editarempleados.aspx"><![CDATA[Empleados]]></a>
  32. <a href="../horarios/editarhorarios.aspx"><![CDATA[Horarios]]></a>
  33. <a href="../jornadas/editarjornadas.aspx"><![CDATA[Jornadas]]></a>
  34. <a href="../cargos/editarcargos.aspx"><![CDATA[Cargos]]></a>
  35. <a href="../usuarios/editarusuarios.aspx"><![CDATA[Usuarios]]></a>
  36. <a href="../profesiones/editarprofesiones.aspx"><![CDATA[Profesiones]]></a>
  37. <a href="../reportes/ReporteMarcaciones.aspx"><![CDATA[Rep. de Marcaciones]]></a>
  38. <a href="../cerrarSesion.aspx"><![CDATA[Cerrar Sesión]]></a>
  39. </div>
  40. <div id="main">
  41. <div class="mainTitle">
  42. <![CDATA[Adicionar Cargos]]>
  43. </div>
  44. <div>
  45. <xf:input ref="sCargo_Desc">
  46. <xf:label><![CDATA[Cargo]]></xf:label>
  47. </xf:input>
  48. <div>
  49. <xf:submit submission="prueba">
  50. <xf:label><![CDATA[Guardar Cambios]]></xf:label>
  51. </xf:submit>
  52. </div>
  53. </div>
  54. <div>
  55.  
  56. <a class="cmdSecond" href="EditarCargos.aspx"><![CDATA[Volver]]></a>
  57. </div>
  58. </div>
  59. </body>
  60. </html>
  61. </xsl:template>
  62. <xsl:template match="cargo[iCargo_Id]">
  63. <iCargo_Id>
  64. <xsl:value-of select="iCargo_Id"/>
  65. </iCargo_Id>
  66. <sCargo_Desc>
  67. <xsl:value-of select="sCargo_Desc"/>
  68. </sCargo_Desc>
  69. <iConcurrencia_Id>
  70. <xsl:value-of select="iConcurrencia_Id"/>
  71. </iConcurrencia_Id>
  72. </xsl:template>
  73. <xsl:template match="cargo[not(iCargo_Id)]">
  74. <iCargo_Id></iCargo_Id>
  75. <sCargo_Desc></sCargo_Desc>
  76. <iConcurrencia_Id></iConcurrencia_Id>
  77. </xsl:template>
  78. </xsl:stylesheet>

我的xml代码如下所示:

  1. <cargo>
  2. <iCargo_Id>1</iCargo_Id>
  3. <sCargo_Desc>Jefe de Sistemas</sCargo_Desc>
  4. <iConcurrencia_Id>1</iConcurrencia_Id>
  5. </cargo>

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

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

解决方法

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

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

猜你在找的HTML相关文章