Subject: Re: XML from html out of XSL From: Bill Martschenko <billmartschenko@xxxxxxxxx> Date: Sun, 26 Sep 1999 21:51:31 -0700 (PDT) |
Use XML islands. Specifically, when you generate HTML with your XSL, generate an XML island <xml id="data">...</xml> that contains a copy of the original XML. Use some programmatic id, such as "data", in the xml island so you can programmatically reference it. I've attached a sample that does this. Notes about the sample. 1) A small table is populated directly from the XSL. 2) A trivial programmatic access to the original xml is in the ondatasetcomplete handler. 3) The data.readystate property does not get set to "complete" in the onload() event handler for the window object or the body. Instead, I use a specific ondatasetcomplete handler for the xml island itself. 4) A second table shows the original XML as a reference table. It uses the xml island as a DSO. This is a second type of programmatic access. Let met know if this is not what you need, Bill >From: Siegfried Haag <Siegfried.Haag@xxxxxxxxxxxxxx> >Date: Fri, 24 Sep 1999 15:31:37 +0100 >Organization: SAG Systemhaus GmbH > >Hi, > >i have a html-page created out of applying xsl on xml-document. > >How can i access the hole xml with javascript in the html? > >--------------- >more exactly: >a.xml with a reference to a style b.xsl >a.xml is startet by the browser IE5 >automatically the b.xsl is loaded after a.xml >and the style b.xsl is applied > >the result is a html-page with javascript in it >and a function in the body: > body onLoad="doit()"; > >in the function i want to access the XML-DOM in the memory >of the browser > >but i have no name of it!? > >when i load the xml by object.load("abc.xml") then i have >it, but thats not the solution > >Anybody who knows a bit more? > >Thank you, > >Siegfried Haag >Software AG __________________________________________________ Do You Yahoo!? Bid and sell for free at http://auctions.yahoo.com
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="loonies.xsl" ?> <loonies> <toon> <character>Sylvester</character> <type>cat</type> <likes-to-pound>Tweety</likes-to-pound> </toon> <toon> <character>Tweety</character> <type>bird</type> </toon> <toon> <character>Tweety's friend</character> <type>dog</type> <likes-to-pound>Sylvester</likes-to-pound> </toon> <toon> <character>Tom</character> <type>cat</type> <likes-to-pound>Jerry</likes-to-pound> </toon> <toon> <character>Jerry</character> <type>mouse</type> <likes-to-pound>Tom</likes-to-pound> </toon> </loonies>
<?xml version='1.0'?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <html> <body bgcolor="#EEE8AA"> <!-- Create a copy of the original XML in an XML island. --> <!-- Give it an id so that the original XML can be --> <!-- programmatically accessed. --> <!-- --> <!-- Also, set up an event handler for when the XML data --> <!-- is available. --> <script for="xmlisland" event="ondatasetcomplete"> var node = xmlisland.XMLDocument.selectSingleNode("loonies/toon/character"); window.alert("xmlisland_ondatasetcomplete: 1st character = '" + node.text + "'"); <!-- Note that the predicate (xmlisland.readystate == "complete") --> <!-- is false. No explanation though the data is available. --> </script> <xml id="xmlisland"> <xsl:apply-templates select="/"> <xsl:template> <xsl:copy> <!-- Note that we leave off pi() in select below --> <xsl:apply-templates select="@* | * | text()"/> </xsl:copy> </xsl:template> </xsl:apply-templates> </xml> <!-- use XSL to build a table of cats that like-to-pound --> <h2>Looney cats that like to pound other toons:</h2> <table border="1"> <thead><th>Toon</th><th>Victim</th></thead> <xsl:for-each select="//toon[type='cat'][likes-to-pound]"> <tr> <td><xsl:value-of select="character"/></td> <td align="center"><xsl:value-of select="likes-to-pound"/></td> </tr> </xsl:for-each> </table> <br></br> <br></br> <h2>Looney Toon Reference</h2> <h3>(A copy of the original XML fed to the XSL)</h3> <table datasrc="#xmlisland" border="1"> <thead><th>Toon</th><th>Type</th><th>Likes to Pound</th></thead> <tr> <td><span datafld="character"></span></td> <td align="center"><span datafld="type"></span></td> <td align="center"><span datafld="likes-to-pound"></span></td> </tr> </table> </body> </html> </xsl:template> </xsl:stylesheet>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
XML from html out of XSL, Siegfried Haag | Thread | Re: XML from html out of XSL, Bill Martschenko |
Re: I don't understand... text is , G. Ken Holman | Date | Re: HTML forms with XSLT slideshow , James Clark |
Month |