Announcement

Collapse
No announcement yet.

XSL und eigene XML-Elemente

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

  • XSL und eigene XML-Elemente

    Hallo,

    mir ist leider kein aussagekräftigerer Titel eingefallen. Nun zu meinem Problem:
    Ich möchte mir per XSL ein SVG-File transformieren. In diesem SVG-File stehen neben den regulären SVG-Tags (Elementen) noch andere (proprietäre) Anweisungen.
    Diese Anweisungen beginnen wie folgt:
    <?tagname <element1> <element2 attr1="" attr2=""/> </element1> ?>

    Mit einer normalen XSL-Transformation kann ich auf den Code zwischen <?tagname und ?> nicht zugreifen.
    Ich denke der Prozessor versteht es nicht, da er den Namespace nicht kennt.
    Wie kann ich denn nun trotzdem für diesen Code zwischen <?tagname und ?> Regeln definieren, um die darin befindlichen Elemente umzuwandeln?

    Danke für jegliche Anregungen!

  • #2
    Angenommen, die PI ist so deklariert:
    Code:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <test>
      <?tagname <element1> <element2 attr1="" attr2=""/> </element1> ?>
    </test>
    Dann lässt sich mit XSLT 1.0-Mitteln lediglich der PI-Inhalt in die Ausgabe befördern:
    Code:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:output method="xml" version="1.0" encoding="ISO-8859-1" indent="yes"/>
    
      <xsl:template match="test">
    
      <pi_output>
        <xsl:value-of select="processing-instruction('tagname')" disable-output-escaping="yes"/>
      </pi_output>
      
      </xsl:template>
    
    </xsl:stylesheet>
    XSLT 2.0 ermöglicht temporäre Strukturen, die dann wieder mit XPath ausgewertet werden können.

    Comment

    Working...
    X