Announcement

Collapse
No announcement yet.

Problem mit Namespaces

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

  • Problem mit Namespaces

    Hallo,

    ich bin ein XSLT-Anfänger, der den Auftrag hat, bestimmte grafische Daten aus ins XDP-Format konvertierten PDF-Dateien zu extrahieren.

    Die Struktur im Beispiel ist auf das Wesentliche reduziert.
    Es gelingt mir leider nicht, auf die Elemente und Attribute auf der Ebene <draw> zuzugreifen.
    Vermutlich liegen die Probleme bei den Namensräumen.

    Wenn mir jemand ein kleines Beispiel geben könnte, wie man z.B. auf die Attribute von <subform h="11.680in" name="P1" w="8.263in"> zugreifen kann, wäre mir sehr geholfen.

    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <?xfa *.?>
    
    <xdp:xdp xmlns:xdp="http://ns.adobe.com/xdp/" timeStamp="2008-06-19T13:00:01Z" uuid="21a0410d-5dc6-420c-a39b-7aba4d283cf3">
      <template xmlns="http://www.xfa.org/schema/xfa-template/2.5/"  xmlns:xfa="http://www.xfa.org/schema/xfa-template/2.1/">
        <subform layout="tb" name="F">
          <subform h="11.680in" name="P1" w="8.263in">
          	<draw h="297mm" name="Rechteck1" w="4.1mm">
          	  ...
          	  ...
          	  ...
          	</draw>
          </subform>
        </subform>
      </template>
    </xdp:xdp>
    Vielen Dank im Voraus!
    Fridolin

  • #2
    So greifst du auf ein Attribut zu.

    Code:
    <xsl:value-of select="subform/@h"/>
    Beschreibe sonst was du genau machen möchtest.

    Comment


    • #3
      Das subform-Element befindet sich im Default-Namensraum. Gib diesen im Stylesheet entsprechend an, hier mit "whatever"-Prefix bezeichnet:
      Code:
      <?xml version="1.0" encoding="ISO-8859-1"?>
      <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:whatever="http://www.xfa.org/schema/xfa-template/2.5/" exclude-result-prefixes="whatever">
        <xsl:output method="xml" version="1.0" encoding="ISO-8859-1" indent="yes"/>
      
        <xsl:template match="/">
        
        <root>
          <xsl:value-of select="//whatever:subform/@h"/>
        </root> 
        
        </xsl:template>
      </xsl:stylesheet>
      Ergebnis:
      Code:
      <?xml version="1.0" encoding="ISO-8859-1"?>
      <root>11.680in</root>
      Mit XSLT 2.0 wird es unter Verwendung von xpath-default-namespace etwas einfacher.

      Comment


      • #4
        Herzlichen Dank,

        das hat mein Problem gelöst!

        Viele Grüße
        Fridolin

        Comment

        Working...
        X