auf JavaScript-Variable mit XSL zugreifen
claude
- xsl
0 Cheatah0 claude0 Cheatah0 claude0 Thomas J.S.0 claude
0 Thomas J.S.
Hallo,
ich habe 3 Datei
eine sprache.dtd :
<!ELEMENT english (name,date,job)>
<!ELEMENT french (name,date,job)>
<!ELEMENT german (name,date,job)>
eine sprache.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="file://M:\Xml\sprache.xsl"?>
<!DOCTYPE Sprache SYSTEM "sprache.dtd">
<sprache>
&data;
<english>
<name>Name</name>
<date>Date</date>
<job>Work</job>
</english>
<french>
<name>Nom</name>
<date>Date</date>
<job>Travail</job>
</french>
<german>
<name>Name</name>
<date>Datum</date>
<job>Arbeit</job>
</german>
</sprache>
eine sprache.xsl
<?xml version="1.0"?>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/TR/REC-html40">
<xsl:template match="sprache">
<script language="JavaScript">
function tri()
{
var Eingabe = 'english, french, german?';
Eingabe=prompt("Choisissez une langue: ",Eingabe);
return(Eingabe);
}
</script>
<xsl:for-each select="french">
<xsl:variable name="date" select="date"/>
<xsl:variable name="name" select="name"/>
<xsl:variable name="job" select="job"/>
<html>
<head><title>Sprache</title>
</head>
<body onload="tri()">
<table border="1" cellpadding="1" width="100%">
<tr>
<td><xsl:value-of select="$date"/></td>
<td><xsl:value-of select="$name"/></td>
<td><xsl:value-of select="$job"/></td>
</tr>
</table>
</body></html>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Ich möchte statt french in <xsl:for-each select="french"> die variable $Eingabe einfügen. Geht aber so einfach nicht. Kann jemand eine Lösung?
Danke für jede Antwort
Gruß
Claude
Hi,
Ich möchte statt �french� in <xsl:for-each select="french"> die variable $Eingabe einfügen. Geht aber so einfach nicht.
kein Wunder: XSL dient dazu, ein XML in ein anderes umzuwandeln (in diesem Fall XHTML). Erst nachdem dies geschehen ist, wird _eventuell_ irgend eine Engine an den Code gehen, die mit JavaScript etwas anfangen kann. Der XSLT ist dann längst gestorben.
A propos JavaScript: <script> benötigt ein type-Attribut.
Cheatah
Hi Cheatah,
Danke für die Antwort.
Wie könnte ich tun, dass beim Öffnen des Dokuments ein Eingabefeld erscheint mit Spracheauswahl und dann in diesen <xsl:for-each select="french"> als Variable übergeben wird?
gruß,
claude
Hi,
Wie könnte ich tun, dass beim Öffnen des Dokuments ein Eingabefeld erscheint mit Spracheauswahl und dann in diesen <xsl:for-each select="french"> als Variable übergeben wird?
nach der Sprachauswahl muss eine neue Seite angefordert werden, deren erzeugendes Script dem XSLT-Prozessor den übergebenen Wert mitteilt.
Cheatah
hi Cheatah,
wenn ich gut verstanden habe: ich habe zuerst eine Seite sprache.html mit meinem JavaScript.Nach der Sprachauswahl öffne ich meine sprache.xml(window.open("sprache.xml") auf (mein JScript ist von dem gelöscht)und wie übergebe ich meine Variable an den sprache.xml?
Gruß,
claude
Hallo,
wenn ich gut verstanden habe:
Hast du nicht.
Aber da dich scheinbar weder das was ich sagte (ok, das ist dein gutes Recht! sehe ich ein.) noch das was im Archiv ausführlich zum Thema steht (das sollte dich aber) interessiert, möch ich eine Frage an dich richten: Warum sollte hier jemand noch 10 mal das Selbe erklären?
Grüße
Thomas
hallo,
Sorry, ich bin Neuling in dem Forum und habe direkt am Ende des Baumes geschaut. Ich habe später deine 1.Nachricht gesehen. Ich bearbeite jetzt alle Archive durch. Ich dachte dass, die deutsche Archive gleich wären als die französische, vielleicht wäre sogar die Idee eine Anpassung zu machen nicht so verkehrt (Viel Arbeit, OK..)
Erst mal aber danke,
Grüße
Claude
Hallo,
eine sprache.xsl
<?xml version="1.0"?>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/TR/REC-html40">
<xsl:param name="Eingabe" />
<xsl:template match="sprache">
...
<xsl:for-each select="$Eingabe">
...
Ich möchte statt french in <xsl:for-each select="french"> die variable $Eingabe einfügen. Geht aber so einfach nicht. Kann jemand eine Lösung?
Nach dem man jetzt eine sprache ausgewählt hat, muss du die XML-Seite nochmal aufrufen und dem Paramter setzen:
(_nur_ als Bsp: http://was.auch.immer/sprache.xml?Eingabe=german)
Aber das setzt voraus, dass du dein XML serverseitig verarbeitets, denn die Browser selbst unterstützen das noch nicht.
Mit einigen Tricks kannst du was machen, dazu findest du im Archiv die Threads von Thomas Meinike mit Lösungen.
Grüße
Thomas