Christian: Fehler bei Entity-Transformation

Hallo
Ich habe folgendes Problem: Meine XML-Datei enthält innerhalb eines Blocks <Absatz> zwei aufeinanderfolgende Entities, getrennt durch einen Leerschlag:
z.B:
<Absatz>Bla bla bla &ent; & bla bla</Absatz>

Nach der xsl-Transformation ist der Leerschlag weg:
"Bla bla bla Entity& bla bla"

Kennt sich jemand damit aus? Danke

Christian

  1. Hallo,

    <Absatz>Bla bla bla &ent; & bla bla</Absatz>

    Nach der xsl-Transformation ist der Leerschlag weg:
    "Bla bla bla Entity& bla bla"

    Du kannst &ent;&#160;&  (&#160; ist der Unicode für  )
    Wenn es nicht anders geht, kannst du ziwschen &ent; und & ein xsl:text </xsl:text> schreiben.

    Grüße
    Thomas

    1. Vielen Dank Thomas

      Du kannst &ent;&#160;&  (&#160; ist der Unicode für  )
      Wenn es nicht anders geht, kannst du ziwschen &ent; und & ein xsl:text </xsl:text> schreiben.

      Da ich aber 1000 Seiten XML-Text habe, der von solchen Fällen nur so wimmelt, welche ich nicht von Hand suchen kann, wäre es mir lieber, wenn der Parser (MSXML 3.0) seine Arbeit richtig tut.

      Keine Idee? Ist ja vielleicht ein Bug?

      Christian

      1. Hallo Christian,

        Da ich aber 1000 Seiten XML-Text habe, der von solchen Fällen nur so wimmelt, welche ich nicht von Hand suchen kann,

        Dazu hat man normalerweise einen Editor, der auch verzeichnisweit in Dateien suchen und ersetzten kann.

        wäre es mir lieber, wenn der Parser (MSXML 3.0) seine Arbeit richtig tut.
        Keine Idee? Ist ja vielleicht ein Bug?

        Kann ich dir nicht sagen. Hast du wirklich überall ein Leerzeichen zwischen die zwei Entities?
        Du könntest mit <xsl:preserve-space elements="Absatz" /> (Top-Level Element) versuchen.

        Ansonsten ist es ohne Code schwer zu sagen was los ist.

        Grüße
        Thomas

        1. Danke euch beiden!

          Dazu hat man normalerweise einen Editor, der auch verzeichnisweit in Dateien suchen und ersetzten kann.

          Ist schon richtig, aber irgendwie ist es doch etwas lästig und der xml-code ist dann einfach nicht richtig, oder ;-) (ich bin etwas puritanisch).
          Upgraden ist natürlich eine gute Idee.

          Kann ich dir nicht sagen. Hast du wirklich überall ein Leerzeichen zwischen die zwei Entities?

          Nein, ich habe auch zusammenhängende Entities. Und wenn es nicht anders geht, ist es natürlich eine gute Idee, mit Suchen und Ersetzen diejenigen mit Leerschlägen zu ersetzen.
          Es ist eben so, dass die XML-Dateien über Konvertierung zustande kommen und ich sowenig wie möglich nachträglich ändern möchte, auch für zukünftige Konvertierungen...

          Du könntest mit <xsl:preserve-space elements="Absatz" /> (Top-Level Element) versuchen.

          Das habe ich schon versucht, nutzt aber nichts!

          Christian

          1. Hallo Christian,

            also ich kann Deinen Fall mit MSXML3 nicht rekonstruieren. Alle Leerzeichen zwischen Entities bleiben auch erhalten.

            Wie schreibst Du denn Deine Entities in den Ergebnisbaum? Poste mal ein wenig Code plus den relevanten Teilen der XML-Datei.

            Gruß
            Franz

      2. Hi,

        wenn der Parser (MSXML 3.0) seine Arbeit richtig tut.

        Davon gibt es doch schon ne 4.x - da würd ich mal updaten...

        Andreas