Subject: Re: [xsl] transformNode() and innerHTML combo fail to update From: "Dale Gillard" <dalegillard@xxxxxxxxxxx> Date: Wed, 24 Dec 2003 14:58:21 +1000 |
Thanks Andrew, I'll try the solution. Having read the MS document 'How to build tables dynamically' you referred to I can see why my Javascript wasn't loading the transformed HTML - innerHTML is read only for tables. I understood the "<xml></xml>" tag to be proprietary to MSIE (as is my 'document.XMLDocument' reference in the Javascript. Is this the case? I'm trying to avoid using proprietary features of IE5.5 as it only supported the XML/XSL W3C draft, and my employer will be moving to IE6 mid 2004 (which supports the W3C recommendations for XML/XSL) and I want my code to be compatible with this. Would it be possible/simpler to use the just the DOM to traverse the original XSL tree and replace/remove the "//xsl:sort/@select" node? That is, I believe that IE 5.5 supports the DOM 1 specification, but I'm not sure it would update the displayed document following the change to the sort's select attribute? Thanks again. Dale On Tue, 23 Dec 2003 13:22:36 +0300, Andrew said: > OK, you want to manipulate table's content dynamically: > 1) read this > http://msdn.microsoft.com/workshop/author/tables/buildtables.asp > 2) you're using div(aroListing) element as direct child of table-it seems > you need to use tbody instead and add rows to it through insertRow() etc. > see (1) > > Suggested solution(something like): > 1) replace div(aroListing) on tbody > 2)add to document another xml doc(aro.xsl): > ... > <head> > <xml id="test"></xml> > ... > </head> > ... > 3) in (xsl.js)/sortWithValue instead of //aroListing.innerHTML = html;: > > function sortWithValue(aSortValue) > { > theXMLDoc = document.XMLDocument; > theXSLDoc = document.XSLDocument; > //---------- insert > m= theXSLDoc.selectSingleNode( "//*[@method='html']"); > if(m){ > m.setAttribute( "method", "xml"); > m.setAttribute( "omit-xml-declaration", "yes"); > } > //----------end > > var node = theXSLDoc.selectSingleNode( "//xsl:sort/@select" ); > node.nodeValue = aSortValue; > var html = theXMLDoc.documentElement.transformNode(theXSLDoc); > //--------------------- insert > > newAro= document.createElement( "TBODY"); > aroListing.parentElement.appendChild( newAro); > aroListing.removeNode( true); > newAro.id= "aroListing"; > > test.loadXML( "<tbody>"+html+"</tbody>"); > rs= test.documentElement.childNodes; > for( i= 0; i< rs.length; i++){ > r= aroListing.insertRow(); > cl= rs[i].childNodes; > for( j= 0; j< cl.length; j++) > r.insertCell().innerHTML= cl[j].xml; > } > //------------------------ end > //aroListing.innerHTML = html; > } -- Dale Gillard dalegillard@xxxxxxxxxxx -- http://www.fastmail.fm - Choose from over 50 domains or use your own XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] transformNode() and inner, Andrew | Thread | Re: [xsl] transformNode() and inner, Andrew |
Re: [xsl] how to group same type no, Wendell Piez | Date | [xsl] Transpose of Table, Animesh Sharma |
Month |