多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

中國最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2

xslt教程

XSLT 教程

XSLT 高級

XSLT 參考手冊

  • XSLT 實例
  • XSLT – 編輯 XML

    閱讀 (2479)

    XSLT - 編輯 XML


    存儲在 XML 文件中的數據可通過因特網瀏覽器進行編輯。


    打開、編輯并保存 XML

    現在,我們會為您展示如何打開、編輯及保存存儲于服務器上的 XML 文件。

    我們將使用 XSL 把 XML 文檔轉換到一個 HTML 表單中。XML 元素的值會被寫到 HTML 表單中的 HTML 輸入域。這個 HTML 表單是可編輯的。在被編輯完成后,數據會被提交回服務器,XML 文件會得到更新(這部分由 ASP 完成)。


    XML 文件和 XSL 文件

    首先,請看將被使用的 XML 文檔("tool.xml"):

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <tool>
    <field id="prodName">
    <value>HAMMER HG2606</value>
    </field>
    <field id="prodNo">
    <value>32456240</value>
    </field>
    <field id="price">
    <value>$30.00</value>
    </field>
    </tool>

    查看 XML 文件

    接著,請看下面的樣式表("tool.xsl"):

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:template match="/">
    <html>
    <body>
    <form method="post" action="edittool.html">
    <h2>Tool Information (edit):</h2>
    <table border="0">
    <xsl:for-each select="tool/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="value" />
    </xsl:attribute>
    </input>
    </td>
    </tr>
    </xsl:for-each>
    </table>
    <br />
    <input type="submit" id="btn_sub" name="btn_sub" value="Submit" />
    <input type="reset" id="btn_res" name="btn_res" value="Reset" />
    </form>
    </body>
    </html>
    </xsl:template>

    </xsl:stylesheet>

    查看 XSL 文件。

    上面這個 XSL 文件會循環遍歷 XML 文件中的元素,并為每個 XML "field" 元素創建一個輸入域。XML "field" 元素的 "id" 屬性的值被添加到每個 HTML 輸入域的 "id" 和 "name" 屬性。每個 XML "value" 元素的值被添加到每個 HTML 輸入域的 "value" 屬性。結果是,可以得到一個包含 XML 文件中值的可編輯的 HTML 表單。

    然后,我們還有第二個樣式表:"tool_updated.xsl"。這個 XSL 文件會被用來顯示已更新的 XML 數據。這個樣式表不會輸出可編輯 HTML 表單,而是一個靜態的 HTML 表格:

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:template match="/">
    <html>
    <body>
    <h2>Updated Tool Information:</h2>
    <table border="1">
    <xsl:for-each select="tool/field">
    <tr>
    <td><xsl:value-of select="@id" /></td>
    <td><xsl:value-of select="value" /></td>
    </tr>
    </xsl:for-each>
    </table>
    </body>
    </html>
    </xsl:template>

    </xsl:stylesheet>

    查看 XSL 文件


    ASP 文件

    在上面 "tool.xsl" 文件中,HTML 表單的 action 屬性的值是 "edittool.asp" 。

    "edittool.asp" 頁面包含兩個函數:loadFile() 函數載入并轉換 XML 文件,updateFile() 函數更新 XML 文件:

    <%
    function loadFile(xmlfile,xslfile)
    Dim xmlDoc,xslDoc
    'Load XML file
    set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")
    xmlDoc.async = false
    xmlDoc.load(xmlfile)
    'Load XSL file
    set xslDoc = Server.CreateObject("Microsoft.XMLDOM")
    xslDoc.async = false
    xslDoc.load(xslfile)
    'Transform file
    Response.Write(xmlDoc.transformNode(xslDoc))
    end function

    function updateFile(xmlfile)
    Dim xmlDoc,rootEl,f
    Dim i
    'Load XML file
    set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")
    xmlDoc.async = false
    xmlDoc.load(xmlfile)

    'Set the rootEl variable equal to the root element
    Set rootEl = xmlDoc.documentElement

    'Loop through the form collection
    for i = 1 To Request.Form.Count
    'Eliminate button elements in the form
    if instr(1,Request.Form.Key(i),"btn_")=0 then
    'The selectSingleNode method queries the XML file for a single node
    'that matches a query. This query requests the value element that is
    'the child of a field element that has an id attribute which matches
    'the current key value in the Form Collection. When there is a match -
    'set the text property equal to the value of the current field in the
    'Form Collection.
    set f = rootEl.selectSingleNode("field[@id='" & _
    Request.Form.Key(i) & "']/value")
    f.Text = Request.Form(i)
    end if
    next

    'Save the modified XML file
    xmlDoc.save xmlfile

    'Release all object references
    set xmlDoc=nothing
    set rootEl=nothing
    set f=nothing

    'Load the modified XML file with a style sheet that
    'allows the client to see the edited information
    loadFile xmlfile,server.MapPath("tool_updated.xsl")
    end function

    'If the form has been submitted update the
    'XML file and display result - if not,
    'transform the XML file for editing
    if Request.Form("btn_sub")="" then
    loadFile server.MapPath("tool.xml"),server.MapPath("tool.xsl")
    else
    updateFile server.MapPath("tool.xml")
    end if
    %>

    提示:假如您不了解如何編寫 ASP,請學習我們的 ASP 教程

    注意:我們正在轉換并更新位于服務器上的 XML 文件。這是一個跨平臺的解決方案??蛻舳藘H能獲得從服務器返回的 HTML - 而 HTML 可運行于任何瀏覽器。


    關閉
    程序員人生
    主站蜘蛛池模板: 日本xxxx护士hd | 中文字幕欧美日韩久久 | 精品久久久久久影院免费 | 国产精品所毛片视频 | 成人久久免费视频 | 日美欧韩一区二去三区 | 国产农村一一级特黄毛片 | 一级做a爰片性色毛片刺激 一级做a爰片性色毛片黄书 | 日韩亚洲欧美综合一区二区三区 | 国产小情侣激情小视频免费看 | 性性影院在线观看 | 日本国产亚洲 | 久久精品免看国产 | 最近免费中文在线视频 | 免费国产一区二区在免费观看 | 高清视频 一区二区三区四区 | 国产精品ⅴ视频免费观看 | 亚洲欧美手机在线观看 | 欧美高清videos36opsexhd | 久久国产欧美日韩精品免费 | 日本高清无卡码一区二区久久 | 亚洲日本中文字幕永久 | 亚洲综合亚洲综合网成人 | 中文字幕在线观看一区 | 波多野结衣手机视频一区 | 国产一级特黄aaaa大片野外 | 国产精品欧美亚洲 | 亚洲成a人片在线观看中文!!! | 国产在线欧美日韩精品一区二区 | 日本大片aa特黄 | 成年视频xxxxx在线网站 | 在线观看视频中文字幕 | 欧美一级网址 | aⅴ一区二区三区无卡无码 aⅴ在线免费观看 | 久久亚洲日本不卡一区二区 | 波多野结衣免费视频观看 | 欧美在线亚洲国产免m观看 欧美在线一二三 | 亚洲欧美视屏 | 无码日韩精品一区二区免费 | 欧美日韩中文国产 | 中文字幕在线观看 |