Announcement

Collapse
No announcement yet.

XSLT Neuling mit Brett vorm Kopf

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

  • XSLT Neuling mit Brett vorm Kopf

    Hallo zusammen. Ich arbeite schon ne Weile mit XML und XSL, aber jetzt muss ich aus Drittsoftware entstandenes XML verarbeiten, das Namespaces enthält.
    Trotz Forensuche und Google sowie Rumexperimentieren komme ich leider nicht zu gewünschten Ergebnis.

    Mein XML sieht so aus:
    Code:
    <?xml version="1.0"?>
    <AdList xmlns="urn:orkan-software.de:schema:ORKAN">
     <Ad>
      <EMail>[email protected]</EMail>
     </Ad>
     <Ad>
      <EMail>[email protected]</EMail>
     </Ad>
    </AdList>
    Mein XSL sieht so aus:
    Code:
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" omit-xml-declaration="yes"/>
    <xsl:template match="/">
    <xsl:for-each select="AdList/Ad">
    <xsl:value-of select="EMail"/></xsl:for-each>
    </xsl:template>
    </xsl:stylesheet>
    Wenn ich nun zum Testen aus der XML folgenden Code entferne
    Code:
     xmlns="urn:orkan-software.de:schema:ORKAN"
    klappt es wunderbar.
    Was muss ich an der XSL verändern damit das läuft?

    Danke schonmal.

  • #2
    Berücksichtige den Namensraum auch im XSLT-Code:
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:orkan="urn:orkan-software.de:schema:ORKAN">
      <xsl:output method="xml" omit-xml-declaration="yes"/>
    
      <xsl:template match="/">
        <xsl:for-each select="orkan:AdList/orkan:Ad">
          <xsl:value-of select="orkan:EMail"/>
        </xsl:for-each>
      </xsl:template>
    
    </xsl:stylesheet>
    Unter XSLT 2.0 lässt sich praktikabler xpath-default-namespace="urnrkan-software.de:schema:ORKAN" bei xsl:stylesheet angeben und der originale Code nutzen.

    Comment


    • #3
      JAA!
      Funktioniert. Vielen Dank. Irgendwie komme ich mit dem Kram besser klar wenn ich einmal ein funktionierendes Beispiel habe.
      Vielen Dank!

      Comment

      Working...
      X