Saltamontes: Elementattribut auslesen

Hallo zusammen!

Ich wandle gerade die content.xml Datei einer OpenOffice IMPRESS Präsentation um. Dabei würde ich gerne die Attribute eines Elements auslesen. Hier zum Beispiel

<drw:text-box presentation:class="title">

würde ich gerne den Wert "title" von presentation:class auslesen. Leider weiß ich nicht wie ich das in meinem XSL Template abfragen kann um zwischen Überschrift und Inhalt einer Folie unterscheiden zu können. Außerdem möchte ich an anderen Stellen Links und Referenzen auf eingebundene Objekt auslesen.

Schonmal Danke für eure Hilfe!

Saltamontes

  1. Hallo,

    Ich wandle gerade die content.xml Datei einer OpenOffice IMPRESS Präsentation um. Dabei würde ich gerne die Attribute eines Elements auslesen. Hier zum Beispiel

    <drw:text-box presentation:class="title">

    würde ich gerne den Wert "title" von presentation:class auslesen.

    Vorausgesetzt du hast in deinem XSL alle Namensräume angegeben:
    <xsl:value-of select="@presentation:class" />

    Leider weiß ich nicht wie ich das in meinem XSL Template abfragen kann um zwischen Überschrift und Inhalt einer Folie unterscheiden zu können.

    Ich verstehe nicht was du damit meinst.

    Außerdem möchte ich an anderen Stellen Links und Referenzen auf eingebundene Objekt auslesen.

    Und welche Frage hast du dabei?

    Grüße
    Thomas

    1. Erstmal vielen Dank für die schnelle Hilfe.
      Funktioniert einwandfrei :)

      Leider weiß ich nicht wie ich das in meinem XSL Template abfragen kann um zwischen Überschrift und Inhalt einer Folie unterscheiden zu können.

      Ich verstehe nicht was du damit meinst.

      Über den Wert des Attribut kann ich unterscheiden, ob es sich um eine Überschrift handelt oder nicht, das hatte ich damit gemeint. Habs wohl etwas umständlich formuliert.

      Außerdem möchte ich an anderen Stellen Links und Referenzen auf eingebundene Objekt auslesen.

      Und welche Frage hast du dabei?

      »»

      Ursprünglich keine andere. Waren nur ein paar andere Beipsiele dafür, was ich über Attributwerte auslesen wollte. Wenn du allerdings weißt, wie ich das XSL Template auf eine weitere Datei anwenden kann, deren  Link ich über einen Attributwert bekomme, wär das natürlich klasse.
      In der XML Datei hab ich zum Beispiel

      <draw:object draw:name="Object 1" presentation:class="object" xlink:href="#Object 1"/>

      Der Inhalt dieses Objekts liegt in einer weiteren XML Datei im Ordner "Objekt 1". An der Stelle, an der sich das Objekt befindet müsste dann im Idealfall das XSL Template wiederum auf die XML Datei des Objekts angewand werden und das Ergebnis eingefügt werden.

      1. Hallo,

        Wenn du allerdings weißt, wie ich das XSL Template auf eine weitere Datei anwenden kann, deren  Link ich über einen Attributwert bekomme, wär das natürlich klasse.
        In der XML Datei hab ich zum Beispiel

        <draw:object draw:name="Object 1" presentation:class="object" xlink:href="#Object 1"/>

        Der Inhalt dieses Objekts liegt in einer weiteren XML Datei im Ordner "Objekt 1". An der Stelle, an der sich das Objekt befindet müsste dann im Idealfall das XSL Template wiederum auf die XML Datei des Objekts angewand werden und das Ergebnis eingefügt werden.

        Das ginge schon mit der document()-Funktion
        http://de.selfhtml.org/xml/darstellung/xpathfunktionen.htm#document
        z.B.
        <xsl:for-each select="document(draw:object/@xlink:href)/root/wasauchimmer"> ...
        oder:
        <xsl:apply-templates select="document(draw:object/@xlink:href)/root"> ...
        (du kannst normal in deinem XSL Templates für die elemente aus dem anderen XML erstellen.

        Aber du brauchst den Pfad und den Dateinamen dazu und der Link xlink:href="#Object 1" verweist eigentlich nicht auf ein externes Dokument, sondern auf ein Element innerhalb desselben XMLs.

        Grüße
        Thomas

        1. Dann sag ich nochmal vielen Dank!
          Hat mir echt sehr geholfen!

          Aber du brauchst den Pfad und den Dateinamen dazu und der Link xlink:href="#Object 1" verweist eigentlich nicht auf ein externes Dokument, sondern auf ein Element innerhalb desselben XMLs.

          Den Link hab ich durch den Aufruf der Datei in PHP. Der Link verweist in meinem Fall auf einen Ordner der sich im gleichen Verzeichnis befindet :)

          Gruß,
          Saltamontes