Announcement

Collapse
No announcement yet.

Verschachtelten Knoten mittels XSLT ändern

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

  • Verschachtelten Knoten mittels XSLT ändern

    Hallo,

    ich möchte ein XHTML erzeugen, in dem ich aus einem XML die Konfiguration und aus einem HTML Inhalt auslese. Das klappt auch alles ganz gut.

    Nur bekomme ich es nicht hin einen verschachtelten form-Tag aus dem alten HTML auszulesen und verändert in das neue XHTML einzufügen. Das heißt zu verändern schon, aber erscheint der Knoten auf oberster Ebene im XHTML und nicht als verschachtelter Knoten. Gibt es eine Möglichkeit die verschachtelten Knoten zu kopieren und den nur den form-Tag zu verändern und in der richtigen Struktur wieder auszugeben? Oder muss man mit XSL die gesamte Struktur der verschachtelten Knoten nachbauen?

    Um das noch mal zu veranschaulichen:

    Code:
    <body>
    <div>...</div>
    <div>
      <div>
      <p>...</p>
      <div>
         <div>
            <div>
               <form>Hier soll nach der Transformation etwas anderes drin stehen.</form>
            </div>
         </div>
      </div>
      <div>...</div>
      </div>
    </div>
    <div>...</div>
    <div>...</div>
    </body>
    Hoffe ich hab mich verständlich ausgedrückt

    Danke schon mal...Gruß
    Alex
    Zuletzt editiert von AleSan; 10.04.2012, 13:32.

  • #2
    Benutze bitte http://entwickler-forum.de/misc.php?do=bbcode#code, um Codebeispiele zu posten.
    Ansonsten sollte
    [highlight=xml]
    <xsl:template match="@* | node()">
    <xsl:copy>
    <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
    </xsl:template>

    <xsl:template match="form">
    <xsl:copy>
    <!-- neuer Inhalt hier, also z.B. -->
    <input type="text" name="input1"/>
    <input type="submit"/>
    </xsl:copy>
    </xsl:template>
    [/highlight]
    reichen, um alle Knoten mit Ausnahme des "form"-Elemente zu kopieren; für das "form"-Element wird der im Template angegebene Inhalt eingefügt, vollkommen unabhängig von der Verschachtelung bzw. von der Ebene, in der sich das "form"-Element befindet.

    Comment


    • #3
      Danke für die Antwort.
      Allerdings werden so nur die Werte der Knoten ausgegeben, also als ob ich value-of anwende.
      Weißt Du woran das liegen könnte?
      Ich verwende übrigens XSLT 1.0 mit PHP (XSLTProcessor-Klasse).

      Comment


      • #4
        Zeige uns mal genau, was du machst, also minimale, aber komplette Beispiele von XML-Eingabedokument, XSLT-Stylesheet, gewünschtem XHTML-Resultat und derzeitigem Resultat. So die Probleme bei der Darstellung im Browser auftreten, erkläre uns bitte auch, ob das XHTML-Resultat, dass per XSLT erzeugt wird, von PHP als text/html oder als application/xhtml+xml an den Browser gesendet wird.

        Comment


        • #5
          Hi Martin,

          sorry, funktioniert doch alles...vielen Dank für Deine Hilfe!!!

          Gruß
          Alexandra

          Comment

          Working...
          X