XSLT - XML:n muokkaaminen
- Edellinen sivu XSLT palvelimella
- Seuraava sivu XSLT esimerkki
XML-tiedostossa olevat tiedot voidaan muokata internet-selaimella.
Avaa, muokkaa ja tallenna XML
Nyt näytämme sinulle, miten avata, muokata ja tallentaa palvelimella tallennettu XML-tiedosto.
Käytämme XSL:ää siirtääksemme XML-dokumentin HTML-lomakkeeseen. XML-elementtien arvot kirjoitetaan HTML-lomakkeen HTML-syöttökenttiin. Tämä lomake on muokattavissa. Kun se on muokattu, tiedot lähetetään takaisin palvelimelle, ja XML-tiedosto päivitetään (tämä tehdään ASP:n toimesta).
XML-tiedosto ja XSL-tiedosto
Ensinnäkin, tarkastele käytettävää XML-dokumenttia ("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>
Seuraavaksi, tarkastele alla olevaa tyylejä ("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>
Tämä XSL-tiedosto käy läpi XML-tiedoston elementit ja luo yhden 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ä johtaa siihen, että voidaan saada muokattava HTML-lomake, joka sisältää XML-tiedoston arvot.
Sitten meillä on toinen tyylisivu: "tool_updated.xsl". Tämä XSL-tiedosto käytetään päivitettyjen XML-tietojen näyttämiseen. Tämä tyylisivu ei tuota muokattavaa HTML-lomaketta vaan staattisen HTML-taulukon:
<?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
HTML-lomakkeen action-ominaisuuden arvo "edittool.asp" on "tool.xsl"-tiedostossa.
"edittool.asp"-sivu 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) 加载 XSL 文件 set xslDoc = Server.CreateObject("Microsoft.XMLDOM") xslDoc.async = false xslDoc.load(xslfile) 转换文件 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-keräys for i = 1 To Request.Form.Count Poista lomakkeesta painikkeet if instr(1,Request.Form.Key(i),"btn_")=0 then selectSingleNode-metodi voi hakea XML-tiedostosta yhden solmun, joka vastaa tiettyä kyselyä. Tämä kysely pyytää value-elementtiä, joka on field-elementin lapsi, Tämä field-elementti omaa id-ominaisuuden, joka voi vastata lomakkeen nykyistä avainta. Jos löytyy vastaava, aseta text-ominaisuus lomakkeen nykyisen alueen 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 tyylilistalla, 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, opettele meidän《ASP - opas》。
Huomautus:Olemme muuntamassa ja päivittämässä palvelimella olevia XML-tiedostoja. Tämä on yliverkkoratkaisu. Asiakas voi saada vain palvelimelta palautetun HTML:n - ja HTML voidaan suorittaa millä tahansa selaimella.
- Edellinen sivu XSLT palvelimella
- Seuraava sivu XSLT esimerkki