У меня есть XML-файл:
<root>
<foo>
<!--Content Here-->
</foo>
</root>
Теперь я хочу сгенерировать из него HTML-файл. HTML имеет две вертикальные рамки. Слева отображается древовидная структура файла XML. И я хочу, чтобы правильный отображал содержимое дерева: при нажатии на узел «foo» содержимое будет отображаться справа.
Теперь я написал XSL-файл для просмотра дерева
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:output method="html"/>
<xsl:template match="/">
<html>
<head>
<!-- Some JS code to deal with the "expand", "collapse"... sth like these-->
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<a onclick="toggle(this)"><img src="plus.gif"/><img src="folder.gif"/>root</a>
<div style="display:none;">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="15"></td>
<td>
<a><img src="page.gif"/>Foo</a>
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</body>
<html>
</xsl:template>
</xsl:stylesheet>
и HTML-файл:
<html>
<head>
<script language="javascript">
function populateFrames(){
var x = new ActiveXObject("Microsoft.XMLDOM");
var s = new ActiveXObject("Microsoft.XMLDOM");
x.async = false
s.async = false
x.load("source.xml");
s.load("tree.xsl");
var html = x.transformNode(s);
var destination = document.frames("header").document.open("text/html","replace");
destination.write(html);
}
</script>
</head>
<frameset onload="populateFrames()" cols="25%,*">
<frame name="header" scrolling="auto" target="main">
<frame name="main">
</frameset>
</html>
Как видите, дерево будет отображаться в рамке header
, а я хочу, чтобы содержимое было в рамке main
Может кто-нибудь сказать мне, как это сделать?