Hallo,
ich bin gerade dabei mich in die XML/XSLT-Thematik einzuarbeiten und stoße da an ein Verständnis/Umsetzungs-Problem.
Meine XML-Datei ist so aufgebaut und soll per XSLT als HTML ausgegeben werden:
----
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml-stylesheet type="text/xsl" href="style.xsl" version="1.0"?>
<Root>
<Section Name="Sec1">
<SectionTitle>Xyz</SectionTitle>
<OutputData Name="XYZ">
<DataTitle>First Header Xyz</DataTitle>
<DataInfo>Ein paar Infos/Text 1.</DataInfo>
</OutputData>
</Section>
<Section Name="Sec2">
<SectionTitle>ZXY</SectionTitle>
<OutputData Name="ZXY">
<DataTitle>First Header ZXY</DataTitle>
<DataInfo>Ein paar Infos/Text 2.</DataInfo>
</OutputData>
</Section>
<Section Name="Sec3">
<SectionTitle>TZR</SectionTitle>
<OutputData Name="TZR">
<DataTitle>First Header TZR</DataTitle>
<DataInfo>Ein paar Infos/Text 3.</DataInfo>
</OutputData>
</Section>
...
</Root>
----
Ich möchte jetzt über ein Dropdown (Formular: <select>), daß alle Werte von SectionTitle und den Section[@Name] als zu übergebenden Wert enthält (also so: <option value="Section[@Name]">SectionTitle </option>), genau die entsprechende OutputData im Dokument anzeigen lassen. Also wenn ich im Dropdown ZXY auswähle wird nur die Section Sec2 angezeigt, usw.
Hier mein Versuch der XSLT Datei:
---
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/Root">
<html>
<head>
<title>TEST</title>
</head>
<body>
<form name="f1" method="post">
<select name="header" onchange="self.document.f1.submit();">
<option>---</option>
<xsl:apply-templates select="Section/SectionTitle"/></select>
</form>
<br/>
<br/>
<xsl:when test="select[@name='header']='ZXY'">
<xsl:apply-templates select="//Section[@Name='Sec2']/OutputData/*"/>
</xsl:when>
xsl:otherwise
<xsl:apply-templates select="//Section[@Name='Sec1']/OutputData/*"/>
</xsl:otherwise>
</xsl:choose>
</body>
</html>
</xsl:template>
<xsl:template match="Section/SectionTitle">
<option>xsl:apply-templates/</option>
</xsl:template>
<xsl:template match="OutputData/DataTitle">
<h1>xsl:apply-templates/</h1>
</xsl:template>
<xsl:template match="OutputData/DataInfo">
<i>xsl:apply-templates/</i>
</xsl:template>
</xsl:stylesheet>
---
Mein Verständnis-Problem: Wie kann ich die vom POST-Formular (das select feld) übergebenen Variablen so verwenden, daß ich sie in die choose-abfrage richtig einbaue. Wie kann ich generell Post/Get-Variablen einbinden? Sitze jetzt schon ne weile dran und langsam schwirrt mir der Kopf :(
Wäre sehr dankbar für eine Hilfe / Denkanstoss / Hinweis!
1000Dank & schöne Grüße!
Björn