Announcement

Collapse
No announcement yet.

Frage zur Suche in XML-Datei

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Frage zur Suche in XML-Datei

    Hallo,

    ich knobel an folgendem Problem: Ich möchte über ein Eingabeformular eine Suche in einem XML-Dokument realisieren und den gefundenen Datensatz anzeigen. Irgendwie gibt es aber im Netz keine hilfreichen Hinweise zu finden, wie man so etwas realisieren kann, ohne auf die Verwendung von php zurückgreifen zu müssen.

    Mal ganz naiv gedacht müsste es doch irgendwie gehen, in
    <xsl:for-each select="...[knotenname='wert']"> den Wert aus dem Eingabeformular zu verwenden?

    Falls es keinen einfachen Trick gibt, der sich mir nur gerade nicht erschließt:

    Konkret sehen die Datensätze etwa wie folgt aus:

    <tw land="CZ">
    <nr_neu>810002</nr_neu>
    ...
    </tw>

    und das "Formular"

    <form name="hogof" action="">
    <p>Nummer: <br/>810 <input name="810" type="text" size="6" maxlength="6"/></p>
    <input type="button" value="Tu was!""/>
    </form>

    Der Datensatz soll angezeigt werden bei Formulareingabe "810002", also <xsl:for-each select=".../tw[nr_neu='...']"> muss bei ... irgendwie den Wert des Eingabefeldes bekommen.
    Zumindest mit JavaScript sollte das doch irgendwie machbar sein, aber wie kriege ich die "Verknüpfung" zwischen Formular und dem XML-File hin?

    Für Hinweise wäre ich echt dankbar, da ich momentan keinen Plan habe, wie man das ganze umgesetzt bekommt!

    Viele Grüße,
    Thomas

  • #2
    Ein XSLT stylesheet kann globale Parameter haben, die man dann (programmatisch) vor der Ausführung einer XSLT-Transformation setzen kann. Du kannst also im Stylesheet etwa folgendes benutzen:
    Code:
    <xsl:param name="neu-wert"/>
    
    <xsl:template match="/">
      <xsl:apply-templates select="//tw[nr_neu = $neu-wert]"/>
    </xsl:template>
    dann musst du den Parameter "neu-wert" programmatisch setzen. Die API (mit Javascript) ist browserabhängig, siehe https://developer.mozilla.org/en/The...ing_Parameters für Mozilla (und Opera) und http://msdn.microsoft.com/en-us/libr...=VS.85%29.aspx für IE.

    Wenn du nur Knoten selektieren willst, brauchst du eventuell aber kein XSLT, dann reicht XPath.

    Comment


    • #3
      Hallo,

      erstmal danke für die Antwort!

      >Wenn du nur Knoten selektieren willst, brauchst du eventuell aber kein XSLT, dann reicht XPath.

      Ja, letztenendes geht es schon darum, einen Knoten zu selektieren. Der Inhalt des <tw>-Tags soll dann aber mittels XSLT in HTML ausgegeben werden.

      Viele Grüße,
      Thomas

      Comment

      Working...
      X