Announcement

Collapse
No announcement yet.

XML STruktur in Attribut

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

  • XML STruktur in Attribut

    Hallo zusammen,

    ich habe folgendes Problem:

    Mein XML sieht so aus:

    Code:
    <Host customer_id="1" friendlyType="Unix" host_hostname="BoxName" host_key="00144FF3339E" host_os="OS" host_osdomain="dev.domain" host_osversion="123" id="b912c80226cb6e287ea5b89e929a54bb" ips="&lt;Values&gt;&lt;Value&gt;10.222.40.0          10.227.138.254       UG        1          0           &lt;/Value&gt;&lt;Value&gt;10.227.138.0         10.227.138.9         U         1         12 nxge0:7   &lt;/Value&gt;&lt;Value&gt;10.227.138.0         10.227.138.123       U         1          0 nxge0:8   &lt;/Value&gt;&lt;Value&gt;10.227.138.0         10.227.138.124       U         1          0 nxge0:9   &lt;/Value&gt;&lt;&lt;/Value&gt;&lt;/Values&gt;"></Host>
    Wie ihr seht ist in dem Attribut "ips" eine weitere XML Struktur verborgen, welche zu allem Uebel noch escaped ist.

    ich habe nun folgende Probleme:

    1) Wie bekomme ich die Escapes raus?
    2) Wie kann ich das Attribut parsen, sodass ich zB Templates daraus anwenden kann?

    Die Werte aus diesem Attribute muessen quasi ebenfalls geparst werden.

    Vielen Dank fuer jegliche Hilfe!

    Beste Gruesse
    Oli

  • #2
    Manche XSLT-Prozessoren haben eine Erweiterungsfunktion, z.b. http://www.saxonica.com/documentatio...ons/parse.html, damit sollte dann etwa
    Code:
    <xsl:template match="Host">
      <xsl:apply-templates xmlns:saxon="http://saxon.sf.net/" select="saxon:parse(concat('&lt;dummy&gt;', @ips, '&lt;/dummy&gt;'))/dummy/node()"/>
    </xsl:template>
    möglich sein.
    Welchen XSLT-Prozessor benutzt du?

    Comment


    • #3
      Hallo Martin,

      danke fuer deine Antwort. In der Zwischenezeit habe ich genau diese Funktion auch gefunden.

      Jedoch muss ich XSLT 1.0 nutzen und steht quasi wieder am Anfang. Gibt es Vergleichbares fuer XSLT 1.0? Achso, Prozessor ist Saxon 6.5

      Comment


      • #4
        Unter http://saxon.sourceforge.net/saxon6.5.5/extensions.html sehe ich keine "parse"-Funktion. Aber wenn du Saxon 6.5 benutzt, sollte es keine Problem sein, auf XSLT 2.0 und Saxon 9 umzusteigen. Ansonsten bleibt nur die Möglichkeit, die Funktionalität selbst als Erweiterungsfunktion http://saxon.sourceforge.net/saxon6....sion-functions zu implementieren.

        Comment

        Working...
        X