test.xml
<?
xml version="1.0" encoding="ISO-8859-1"
?>
<? xml-stylesheet type="text/xsl" href="test.xsl" ?>
< html >
< script >
var ds = [[1,2,3],[4,5,6],[7,8,9]];
</ script >
< grid id ="abc" datasource ="ds" />
< script >
alert(abc.id);
</ script >
</ html >
<? xml-stylesheet type="text/xsl" href="test.xsl" ?>
< html >
< script >
var ds = [[1,2,3],[4,5,6],[7,8,9]];
</ script >
< grid id ="abc" datasource ="ds" />
< script >
alert(abc.id);
</ script >
</ html >
test.xsl
<?
xml version="1.0" encoding="ISO-8859-1"
?>
< xsl:stylesheet version ="1.0"
xmlns:xsl ="http://www.w3.org/1999/XSL/Transform" >
< xsl:import href ="grid.xsl" />
< xsl:template match ="/" >
< html >
< head >
</ head >
< body >
< xsl:apply-templates />
</ body >
</ html >
</ xsl:template >
< xsl:template match ="//script" >
< xsl:copy-of select ="." />
</ xsl:template >
</ xsl:stylesheet >
< xsl:stylesheet version ="1.0"
xmlns:xsl ="http://www.w3.org/1999/XSL/Transform" >
< xsl:import href ="grid.xsl" />
< xsl:template match ="/" >
< html >
< head >
</ head >
< body >
< xsl:apply-templates />
</ body >
</ html >
</ xsl:template >
< xsl:template match ="//script" >
< xsl:copy-of select ="." />
</ xsl:template >
</ xsl:stylesheet >
grid.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 ="//grid" >
< h2 > Grid </ h2 >
< script type ="text/javascript" >
< xsl:attribute name ="id" >
< xsl:value-of select ="@id" />
</ xsl:attribute >
if (Grid === undefined){
var Grid = function (datasource){
var tbl = document.createElement('table');
tbl.border = 1;
for (var i=0; i < datasource.length; i++){
var tr = document.createElement('tr');
for (var k=0; k < datasource[i].length; k++){
var td = document.createElement('td');
var tt = document.createTextNode(datasource[i][k]);
td.appendChild(tt);
tr.appendChild(td);
}
tbl.appendChild(tr);
}
return tbl;
}
}
var < xsl:value-of select ="@id" /> = function (){
var sc = document.getElementById(' < xsl:value-of select ="@id" /> ');
var gd = new Grid( < xsl:value-of select ="@datasource" /> );
gd.id = " < xsl:value-of select ="@id" /> ";
sc.parentNode.replaceChild(gd, sc);
return gd;
}();
</ script >
</ xsl:template >
</ xsl:stylesheet >
< xsl:stylesheet version ="1.0"
xmlns:xsl ="http://www.w3.org/1999/XSL/Transform" >
< xsl:template match ="//grid" >
< h2 > Grid </ h2 >
< script type ="text/javascript" >
< xsl:attribute name ="id" >
< xsl:value-of select ="@id" />
</ xsl:attribute >
if (Grid === undefined){
var Grid = function (datasource){
var tbl = document.createElement('table');
tbl.border = 1;
for (var i=0; i < datasource.length; i++){
var tr = document.createElement('tr');
for (var k=0; k < datasource[i].length; k++){
var td = document.createElement('td');
var tt = document.createTextNode(datasource[i][k]);
td.appendChild(tt);
tr.appendChild(td);
}
tbl.appendChild(tr);
}
return tbl;
}
}
var < xsl:value-of select ="@id" /> = function (){
var sc = document.getElementById(' < xsl:value-of select ="@id" /> ');
var gd = new Grid( < xsl:value-of select ="@datasource" /> );
gd.id = " < xsl:value-of select ="@id" /> ";
sc.parentNode.replaceChild(gd, sc);
return gd;
}();
</ script >
</ xsl:template >
</ xsl:stylesheet >