Announcement

Collapse
No announcement yet.

Problem mit xsl:copy

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

  • Problem mit xsl:copy

    Guten Abend,

    ich möchte mit dem Befehl xsl:copy ein komplettes XML-Dokument in Variable speichern.
    Die XML-Datei besitzt nur Elemente mit Attributen:

    Code:
    <beispiel>
    <abteilung a>
    <name id="us-34" email="asdere"/>
    </abteilung a>
    
    </beispiel>
    die xsl:

    Code:
    <xsl-template match="/">
    <xsl:variable name="ext-file">
    <xsl:copy-of select="document('user.xml')"/>
    </xsl:variable>
    
    
    </template>
    Im weiteren Verlauf des Templates will ich dann auf die Attribute auslesen und bearbeiten.
    Aber in der Variable ext-file ist nichts, außer lustigen Kästen mehr nicht.

    Wo ist der Fehler?

    Vielen Dank

  • #2
    Hi,

    versuche es einfach mit
    Code:
    <xsl-template match="/">
    
    <xsl:variable name="ext-file" select="document('user.xml')"/>
    
    </template>
    MfG

    Comment


    • #3
      Danke für die schnelle Antwort! So klappt, dass aber auch nicht!

      Bin dankbar für weitere Ideen!

      Comment


      • #4
        Gibt es im XML-Dokument wirklich Elemente mit dem Namen "abteilung a"? Dann korrigiere das. Die Variante mit der durch xsl:copy-of gefüllten Variable funktioniert so nicht unter XSLT/XPath 1.0 (konkret der Baumzugriff, weiter kopieren könnte man die Inhalte schon, Stichwort Result Tree Fragment). Mit der document()-Funktion sollte der Zugriff (auf wohlgeformtes XML) klappen.

        Comment


        • #5
          Danke

          Hi Thomas,

          viele Dank, es geht jetzt. Hast mir noch einen schönen Freitagmittag bereitet.

          Lese nun das Dokument in eine Variable ein und damit sollte dann das Weiterarbeiten möglich sein hier ist der code:

          die xsl:
          Code:
          <xsl:variable name="collected_user" select="document('user.xml')"/>
          <xsl:for-each select="$collect_user//abteilung_a">
          <!-- Ausgabe mit copy-of -->
          
          <xsl:copy-of select="."/>
          
          </xsl:for-each>
          Vielen Dank und ein schönes WE!

          Comment

          Working...
          X