XML in Anzeige bei Klick ändern
Tom Rowdys
- xml
Hallo Wissende,
ich habe eine XML-Datei in der sich Sportlerdaten befinden, die ich in der ersten Anzeige auf Name, Vorname und Land beschränke. Nun habe ich aber ausreichend Daten, um damit auch noch eine Detailseite anzubieten.
Ich möchte also entweder, dass die Details im ON dazugeblendet werden, oder das die XML-Datei sich auf den selektierten Namen hin in der Anzeige reduziert.....
Ich möchte also NICHT für jeden Spieler eine extra-HTML-Seite bauen oder generieren, weil ich ja schon alles in der XML-Datei stehen habe. Könntet Ihr mir vielleicht ein wenig helfen und sagen, was ich tun muss, um es sinnvoll zu realisieren???
Hier mal ein Ausschnitt aus der XML und XSL-Datei:
######################################################
XML
######################################################
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE glossar SYSTEM "players.dtd">
<?xml-stylesheet type="text/xsl" href="players.xsl" ?>
<?xml-stylesheet type="text/css" href="index.css" ?>
<glossar>
<eintrag>
<id>1</id>
<player_id>1</player_id>
<gender>m</gender>
<first_name>Tommy</first_name>
<second_name>Haas</second_name>
<mid_name></mid_name>
<birthdate>03.04.1978</birthdate>
<ioc>GER</ioc>
<asian></asian>
<height>187</height>
<weight>88</weight>
<birthplace>Hamburg</birthplace>
<residence>Bradenton, Florida, USA</residence>
<plays>R</plays>
<profi_since>1996</profi_since>
<act_sgl_rec></act_sgl_rec>
<act_sgl_title></act_sgl_title>
<act_dbl_rec></act_dbl_rec>
<act_dbl_title></act_dbl_title>
<act_prize_money></act_prize_money>
<hole_sgl_rec></hole_sgl_rec>
<hole_sgl_title></hole_sgl_title>
<hole_dbl_title></hole_dbl_title>
<hole_orize_money></hole_orize_money>
<career_high_sgl></career_high_sgl>
<career_high_dbl></career_high_dbl>
</eintrag>
<eintrag>
<id>2</id>
<player_id>2</player_id>
<gender>m</gender>
<first_name>Roger</first_name>
<second_name>Federer</second_name>
<mid_name></mid_name>
<birthdate>08.08.1981</birthdate>
<ioc>SUI</ioc>
<asian></asian>
<height>185</height>
<weight>80</weight>
<birthplace>Basel</birthplace>
<residence>Oberwill, SUI</residence>
<plays>R</plays>
<profi_since>1998</profi_since>
<act_sgl_rec></act_sgl_rec>
<act_sgl_title></act_sgl_title>
<act_dbl_rec></act_dbl_rec>
<act_dbl_title></act_dbl_title>
<act_prize_money></act_prize_money>
<hole_sgl_rec></hole_sgl_rec>
<hole_sgl_title></hole_sgl_title>
<hole_dbl_title></hole_dbl_title>
<hole_orize_money></hole_orize_money>
<career_high_sgl></career_high_sgl>
<career_high_dbl></career_high_dbl>
</eintrag>
</glossar>
######################################################
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="/">
<html>
<head>
<link rel="stylesheet" href="index.css" type="text/css" />
</head>
<body>
<table border="0" cellpadding="0" cellspacing="3" width="100%">
<tr valign="top">
<td />
</tr>
<tr valign="top">
<td align="left">
<h3>Players information</h3>
<br />
</td>
</tr>
<tr valign="top">
<td align="left">
<table cellpadding="0" cellspacing="0" style="width:99%;border:2px solid # DCD7CC;padding:5px;margin:5px;background-image:url(table.gif);">
<tr class="head">
<td>Vorname</td>
<td>Nachname</td>
<td>Nation</td>
</tr>
<xsl:for-each select="glossar/eintrag">
<tr valign="middle" height="40">
<td class="player"><xsl:value-of select="second_name" /></td>
<td class="player"><xsl:value-of select="first_name" /></td>
<td class="player"><a href="flags/{ioc}.gif"><img src="flags/{ioc}.gif" border="2" /></a></td>
</tr>
<tr>
<td valign="top" colspan="6"><hr /></td>
</tr>
</xsl:for-each>
</table>
</td>
</tr>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Vielen Dank für Eure Tipps, Hinweise und/oder CodeSnippets
Tom
Hallo,
ich habe eine XML-Datei in der sich Sportlerdaten befinden, die ich in der ersten Anzeige auf Name, Vorname und Land beschränke. Nun habe ich aber ausreichend Daten, um damit auch noch eine Detailseite anzubieten.
Ich möchte also entweder, dass die Details im ON dazugeblendet werden, oder das die XML-Datei sich auf den selektierten Namen hin in der Anzeige reduziert.....
Ich möchte also NICHT für jeden Spieler eine extra-HTML-Seite bauen oder generieren, weil ich ja schon alles in der XML-Datei stehen habe. Könntet Ihr mir vielleicht ein wenig helfen und sagen, was ich tun muss, um es sinnvoll zu realisieren???
Du hast zwei Möglichkeiten:
a) du generierst alle Daten die du hast in einem Schritt in einer HTML-Datei und zwar so, dass die Detailinfos sich in einzelnen <div>s mit display:none; befinden. Dann kannst du sie per JavaScript ein- und ausblenden.
b) Du übergibts dem XSLT ein Parameter und damit führst du die Trasformation erneut aus. Im XSL muss du natürlich den Parameter abfragen und in dessen Abhängigkeit dann die Ausgabe generieren.
Das geht entweder serverseitig, wo du den Parameter als URL-Parameter übergibts, oder Browserseitig, wo du per JavaScript die Transformation aufrufst und beim Aufruf den Parameter an dem XSLT-Prozessor übergibts.
Für diese letztere ein Bsp: http://forum.de.selfhtml.org/archiv/2006/3/t126420/#m815491
Weitere Beispiel im Archiv (Sitchworte für die Suche: XSL, Javascript, Variable und mein/der Name "Thomas J.S.")
Grüße
Thomas