如何使用XSLT生成HTML表单?

时间:2013-10-19 03:12:27

标签: html xml forms xslt

我有一份表格填写:

<form action="welcome.jsp"  method="post">
 <table>
  <tr><td>Email:</td><td><input type="text" name="email"></td></tr>
  <tr><td>Name:</td><td><input type="text" name="name"></td></tr>
  <tr><td>Mobile:</td><td><input type="text" name="mobile"></td></tr>
  <tr><td></td><td><input type="submit" value="Submit"></td></tr>
 </table>
</form>

但是,如何使用XSLT生成相同的表单? 这个表单驻留在一个index.jsp文件中,我在这个文件中有xml,现在可以使用任何模拟xml,我很困惑

<input ... > 

一部分。

感谢

1 个答案:

答案 0 :(得分:3)

此XML输入文件:

<r>
  <email>bob@example.com</email>
  <name>Bob</name>
  <mobile>123-456-7890</mobile>
</r>

为此XSLT转型提供支持:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" 
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="html" indent="yes" />
  <xsl:template match="/r">
    <xsl:variable name="email" select="email"/>
    <xsl:variable name="name" select="name"/>
    <xsl:variable name="mobile" select="mobile"/>
    <form action="welcome.jsp"  method="post">
      <table>
        <tr><td>Email:</td><td><input type="text" name="email" value="{$email}"></input></td></tr>
        <tr><td>Name:</td><td><input type="text" name="name" value="{$name}"/></td></tr>
        <tr><td>Mobile:</td><td><input type="text" name="mobile" value="{$mobile}"/></td></tr>
        <tr><td></td><td><input type="submit" value="Submit"/></td></tr>
      </table>
    </form>
  </xsl:template>
</xsl:stylesheet>

产生完整表单的HTML:

<form action="welcome.jsp" method="post">
   <table>
      <tr>
         <td>Email:</td>
         <td><input type="text" name="email" value="bob@example.com"></td>
      </tr>
      <tr>
         <td>Name:</td>
         <td><input type="text" name="name" value="Bob"></td>
      </tr>
      <tr>
         <td>Mobile:</td>
         <td><input type="text" name="mobile" value="123-456-7890"></td>
      </tr>
      <tr>
         <td></td>
         <td><input type="submit" value="Submit"></td>
      </tr>
   </table>
</form>

看起来像这样:

enter image description here