XSLT - Muokkaa XML
- Edellinen sivu XSLT palvelimella
- Seuraava sivu XSLT muokkausohjelma
XML-tiedostossa olevat tiedot voidaan muokata internet-selaimella.
Avaa, muokkaa ja tallenna XML
Nyt näytämme, miten avataan, muokataan ja tallennetaan palvelimella tallennettu XML-tiedosto.
Käytämme XSL:tä muuntaaksemme XML-dokumentin HTML-lomakkeeseen. XML-elementtien arvot kirjoitetaan HTML-lomakkeen HTML-syöttökenttiin. Tämä lomake on muokattavissa. Muokattuasi, tiedot lähetetään takaisin palvelimelle, ja XML-tiedosto päivitetään (tämä osa ASP:n tehtävä).
XML-tiedosto ja XSL-tiedosto
Ensiksi, tarkastele käytettävää XML-dokumenttia ("tool.xml"):
<?xml version="1.0" encoding="ISO-8859-1"?> <työkalu> <kenttä id="tuotNimi"> <arvo>Hammer HG2606</arvo> </kenttä> <kenttä id="tuotNo"> <arvo>32456240</arvo> </kenttä> <kenttä id="hinta"> <arvo>$30.00</arvo> </kenttä> </tool>
Seuraavaksi, tarkastele alla olevaa tyylilistaa ("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.asp"> <h2>Työkalun tiedot (muokkaa):</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>
Yllä oleva XSL-tiedosto käy läpi XML-tiedoston elementit ja luo syöttökentän jokaiselle XML "field"-elementille. field-elementin id-ominaisuuden arvo lisätään jokaisen HTML-syöttökentän id- ja name-ominaisuuksiin. "value"-elementin arvo lisätään jokaisen HTML-syöttökentän "value"-ominaisuuteen. Tämä tulos on muokattava HTML-lomake, joka sisältää XML-tiedoston arvot.
Sitten meillä on toinen tyylisivu: "tool_updated.xsl". Tämä XSL-tiedosto käytetään näyttämään päivitettyjä XML-tietoja. Tämä tyylisivu ei tuota muokattavaa HTML-lomaketta, vaan staattista HTML-taulukkoa:
<?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>Päivitetty työkalun tieto:</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>
ASP-tiedosto
Tässä "tool.xsl" tiedostossa, HTML-lomakkeen action-ominaisuuden arvo on "edittool.asp" .
Sivu "edittool.asp" sisältää kaksi funktiota: loadFile() ladata ja muuntaa XML-tiedoston, updateFile() funktio päivittää XML-tiedoston:
<% function loadFile(xmlfile,xslfile) Dim xmlDoc,xslDoc Lataa XML-tiedosto set xmlDoc = Server.CreateObject("Microsoft.XMLDOM") xmlDoc.async = false xmlDoc.load(xmlfile) Lataa XSL-tiedosto set xslDoc = Server.CreateObject("Microsoft.XMLDOM") xslDoc.async = false xslDoc.load(xslfile) Muunna tiedosto Response.Write(xmlDoc.transformNode(xslDoc)) end function function updateFile(xmlfile) Dim xmlDoc,rootEl,f Dim i Lataa XML-tiedosto set xmlDoc = Server.CreateObject("Microsoft.XMLDOM") xmlDoc.async = false xmlDoc.load(xmlfile) Aseta rootEl-muuttuja juurelementiksi Set rootEl = xmlDoc.documentElement Läpi form-kerroksen for i = 1 To Request.Form.Count Poista lomakkeesta painikkeet if instr(1,Request.Form.Key(i),"btn_")=0 then selectSingleNode-metodi voi etsiä XML-tiedostosta yhtä yksittäistä solmua, joka vastaa tiettyä kyselyä. Tämä kysely pyytää value-elementtiä, joka on field-elementin alikomponentti, Tämä field-elementti omaa id-ominaisuuden, joka voi vastata lomakkeen nykyisen key-arvon. Jos löytyy vastaava, aseta text-ominaisuus lomakkeen nykyisen kentän arvoksi. set f = rootEl.selectSingleNode("field[@id='" & _ Request.Form.Key(i) & "/value") f.Text = Request.Form(i) end if next Tallenna muokattu XML-tiedosto xmlDoc.save xmlfile Vapauta kaikki objektiviittaukset set xmlDoc=nothing set rootEl=nothing set f=nothing Lataa muokattu XML-tiedosto tyylitaulusta, jotta asiakas voi nähdä muokatut tiedot loadFile xmlfile,server.MapPath("tool_updated.xsl") end function 'Jos lomake on jo lähetetty, päivitä XML-tiedosto ja näytä tulokset, jos sitä ei ole lähetetty, muunna tämä XML-tiedosto muokattavaksi if Request.Form("btn_sub")="" then loadFile server.MapPath("tool.xml"),server.MapPath("tool.xsl") else updateFile server.MapPath("tool.xml") end if %>
Vinkki:Jos et tiedä, miten kirjoittaa ASP, oppi meidän <ASP opas》。
Huomautus:Olemme muuntamassa ja päivittämässä palvelimella olevia XML-tiedostoja. Tämä on ylivoimainen ratkaisu. Asiakas voi saada vain palvelimelta palautetun HTML:n - ja HTML voidaan suorittaa millä tahansa selaimella.
- Edellinen sivu XSLT palvelimella
- Seuraava sivu XSLT muokkausohjelma