Announcement

Collapse
No announcement yet.

unescaping unterbinden

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

  • unescaping unterbinden

    Hallo zusammen,

    ich transformiere mittels SAXON ein XML in ein neues XML.

    <xslutput method="xml" version="1.0" encoding="ISO-8859-1"/>

    Bei der Quelle habe ich als content zB:

    <tag_source>"Gr#246;#223;e"</tag_source>//zuzügl. der "&"-zeichen

    daraus wird dann mittels

    Code:
    <tag_target><xsl:value-of select="tag_source"/></tag_target>
    <tag_target>Größe</tag_target>

    was ich so aber nicht brauchen kann.

    Was muss ich machen um

    <tag_target>Gr#246;#223;e</tag_target>//zuzügl. der "&"-zeichen
    zu erhalten?

    Besten Dank,
    xrax

  • #2
    Also im XSLT/XPath-Datenmodell, mit dem der XSLT-Prozessor arbeitet, gibt es nur Unicodezeichen, die der XML-Parser beim Parsen des XML-Dokumentes erzeugt. XSLT hat im Datenmodell immer ein "tag_target"-Elementknoten mit einem Textknoten mit dem Inhalt "Größe", egal welche Kodierung das Dokument ursprünglich hatte und egal ob die Zeichen im Dokument literal vorkommen oder als Zeichenreferenzen.
    Es ist also nicht möglich, Zeichenreferenzen zu erhalten, außer man benutzt http://andrewjwelch.com/lexev/.
    So du nur mit Saxon Zeichenreferenzen erzwingen willst, dann nur du
    Code:
    <xsl:output encoding="US-ASCII"/>
    aber damit werden dann nicht alle Zeichenreferenzen aus der Eingabe erhalten sondern einfach alle Zeichen außerhalb von ASCII als Zeichenreferenzen serialisiert.

    Als Ergänzung, so du Saxon 9 und XSLT 2.0 benutzt, sei noch auf character maps http://www.w3.org/TR/xslt20/#character-maps hingewiesen, auch das ist kein Weg, um Zeichenreferenzen aus der Eingabe zu erhalten, aber zumindest ein Weg, um in der Ausgabe gewünschte Zeichen zu ersetzen, wenn gewünscht, durch Zeichen- oder Entitätsreferenzen.
    Zuletzt editiert von Martin Honnen; 11.05.2011, 14:01. Reason: Ergänzung

    Comment


    • #3
      Danke Martin !

      habs (glaub ich) kapiert und werde es dann ebend ohne XSLT umsetzten.

      Gruß,
      xrax

      Comment

      Working...
      X