Ware super nett, wenn du das hinbekommst. Habe mir auch dein bad book beispiel angeschuat. Dort stehen aber auch in der html im javascript jeder einzelne link, das waere zu aufwending, wenn die xml ueber 100 publikationen enthalten soll.
Deshalb sagte du muss den Script adaptieren! ;-)
»»Bis jetzt habe ich auch noch kein Beispiel gefunden, in dem die parameter über die url an die xsl gegebeb werden, aber ich baue ganz auf dich ;-)
Hier der Code IE + Mozilla/Netscape
Hoffe es hilft,
Grüße
Thomas
-------------------------------------------------------
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="wpnumber" />
<xsl:template match="/">
<html>
<head>
<script language="JavaScript" type="text/javascript">
/* FÜR DEN IE */
var objSrcTree, ObjXSLT, objCache;
/* FÜR MOZILLA */
var xslStylesheet;
var xsltProcessor = (window.ChromeWindow) ? new XSLTProcessor() : "";
var myDOM;
var xmlDoc;
function init()
{
if (window.ActiveXObject)
{
objSrcTree = new ActiveXObject('MSXML2.DOMDocument.4.0');
objSrcTree.async = false;
objSrcTree.load('wp.xml');
objXSLT=new ActiveXObject('MSXML2.FreeThreadedDOMDocument.4.0');
objXSLT.async = false;
objXSLT.load('wp.xsl');
objCache = new ActiveXObject("Msxml2.XSLTemplate.4.0");
objCache.stylesheet = objXSLT;
//output.innerHTML = "";
}
else if (window.ChromeWindow)
{
// load the xslt file
var myXMLHTTPRequest = new XMLHttpRequest();
myXMLHTTPRequest.open("GET", "wp.xsl", false);
myXMLHTTPRequest.send(null);
xslStylesheet = myXMLHTTPRequest.responseXML;
xsltProcessor.importStylesheet(xslStylesheet);
// load the xml file
myXMLHTTPRequest = new XMLHttpRequest();
myXMLHTTPRequest.open("GET", "wp.xml", false);
myXMLHTTPRequest.send(null);
xmlDoc = myXMLHTTPRequest.responseXML;
//document.getElementById("output").innerHTML = "";
}
else
alert("Ihr Browser unterstützt keine XML-XSL-Transformation");
}
function show(nAbstrakt)
{
if (window.ActiveXObject)
{
var objXSLTProc = objCache.createProcessor();
objXSLTProc.input = objSrcTree;
objXSLTProc.addParameter("wpnumber", nAbstrakt, "");
objXSLTProc.transform();
output.innerHTML = objXSLTProc.output;
}
else if (window.ChromeWindow)
{
var myParam = xsltProcessor.getParameter(null, "wpnumber");
xsltProcessor.setParameter(null, "wpnumber", nAbstrakt);
var fragment = xsltProcessor.transformToFragment(xmlDoc, document);
myDOM = fragment;
document.getElementById("output").innerHTML = "";
document.getElementById("output").appendChild(fragment);
}
}
</script>
<title>Test</title>
</head>
<body onload="init();">
xsl:choose
<xsl:when test="$wpnumber != ''">
<xsl:apply-templates select="list/workingpaper[wp_number = $wpnumber]" />
</xsl:when>
xsl:otherwise
<xsl:apply-templates select="list" />
</xsl:otherwise>
</xsl:choose>
</body>
</html>
</xsl:template>
<xsl:template match="list">
<div id="output">
<table cellpadding="4" cellspacing="4" width="97%" border="1" align="center">
<xsl:for-each select="workingpaper">
<tr align="center" valign="middle">
<td width="11%">
<xsl:value-of select="date/month"/>-xsl:value-of select="date/year"/
</td>
<td width="14%">
<xsl:value-of select="wp_number"/>
</td>
<td width="19%">
<xsl:for-each select="autor">
<xsl:value-of select="name"/>
<br/>
</xsl:for-each>
</td>
<td width="45%">
<xsl:value-of select="title"/> - <br/>
<xsl:value-of select="subtitle"/>
</td>
<td width="11%">
<div align="center">
<a href="javascript:show('{wp_number}')">Abstract</a>
</div>
</td>
</tr>
</xsl:for-each>
</table>
</div>
</xsl:template>
<xsl:template match="workingpaper">
<!-- Hier sollten nun erst einmal provisorisch alle Daten des workinpaper stehen -->
<div>
<a href="javascript:location.reload()">ZURÜCK</a>
</div>
<div id="output" align="center" style="font-family:Tahoma; font-size:48pt; color:red">
<xsl:value-of select="." />
</div>
</xsl:template>
</xsl:stylesheet>