XSL.ASP编辑XML文档(1)

简介
  
  
  本文是"保存至HTML 表格数据至XML"的姐妹篇。如果你没读过上文,我建议您最好先浏览一下。本文是建立在上文基础之上的。关于上文的举例,读者不断给予了肯定的回应,同样的,很多人都想知道如何编辑XML数据。因此,我写下了此文。
  
  
  使用XSL状态下:打开一个XML文件,确定将对它进行编辑、传送至HTML表单,并最终将传送到浏览器。 XML元素的值将会被设置成HTML输入域的值。在这些必要的编辑后,则可将这些经处理的信息提交至服务器,XML文件同时也被更新。
  
  
  第一步LOAD你将会编辑并在浏览器以HTML表格形式出现的文件。在以下的举例中,XML在服务器上的变化被我跳过了,在使用微软的XMLDOM 目标下,XML文件是能被XSL文件转化的。我们在此同样可以用到这个技巧来转化XML文件。
  
  
  XML File: contact.xml:
  
  <?xml version="1.0" ?
  
  <contact
  
   <field id="firstName" taborder="1"
  
    <field_valueMichael/field_value
  
   </field
  
   <field id="lastName" taborder="2"
  
    <field_valueQualls/field_value
  
   </field
  
   <field id="address1" taborder="3"
  
    <field_value202 East Haverbrook/field_value
  
   </field
  
   <field id="address2" taborder="4"
  
    <field_valueOklahoma City, OK 73114/field_value
  
   </field
  
   <field id="phone" taborder="5"
  
    <field_value4055551234/field_value
  
   </field
  
   <field id="email" taborder="6"
  
    <field_valuemqualls@vertiscope.com/field_value
  
   </field
  
  </contact
  
  本文举例用到的XML文件与 "保存HTML表格至XML"一文中的举例一样。因此你能够更直观的观察到其中的关联之处。
  
  
  XSL File: contact.xsl:
  
  
  <?xml version="1.0"?
  
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"
  
  <xsl:template match="/"
  
  <html
  
  <body
  
   <form method="post" action="EditContact.asp"
  
   <h1Edit Contact:/h1
  
   <table border="1" cellpadding="2"
  
   <xsl:for-each select="contact/field"
  
   <tr
  
    <td
  
     <xsl:value-of select="@id"/
  
    </td
  
    <td
  
     <input type="text"
  
     <xsl:attribute name="id"
  
     <xsl:value-of select="@id" /
  
     </xsl:attribute
  
     <xsl:attribute name="name"
  
     <xsl:value-of select="@id" /
  
     </xsl:attribute
  
     <xsl:attribute name="value"
  
     <xsl:value-of select="field_value" /
  
     </xsl:attribute
  
     </input
  
    </td
  
    </tr
  
    </xsl:for-each
  
   </table
  
   <input type="submit" id="btnSubmit" name="btnSubmit" value="Submit" /
  
   </form
  
   </body
  
   </html
  
   </xsl:template
  
   </xsl:stylesheet
  
  这个XSL文件使用了for-each XSL元素,使之在XSL文件的元素中反复。
  
  
  由此根元素开始,每个XML""元素的"ID"被写成了HTML文本域的"ID""NAME"
  
  
  同样,XML文件中"域值/FIELD_VALUE"元素的值也被写成为每个HTML文本域中的"/value"。最后的结果自然是HTML格式包含了来自XML文件中将会被编辑的值。
  
  
  我之所以把"ID"XML文件中的""元素里提出来,并把它置于XSL文件中的HTML文本域中,是为了不至于混淆并且可以促进命名的连贯性。这样的话,不太熟悉编码知识的朋友也能分辨出哪个XML域配哪 HTML域。
  
  
  通过使用上述两个文件,我们已为开始编辑XML文件做好了充分准备。XSL文件将会传输XML文件以便能够在浏览器上显示。我们可以在终端机上做这个传输工作,但不是最好的解决方案。用ASP的话,我们可以在服务器上做这个传输工作。同样的,我们可以在服务器上做XML文件的编辑工作。