gonZoX: simplexml_load_file // üngültiges Zeichen

Hi@all,

Wenn ich versuche per simplexml_load_file eine xml Datei zu laden welche z.B. die Zeichen '&', '^',... enthällt, bekomme ich logischerweise diverse Fehlermeldungen.
Wie muss ich vorgehen, um die xml Datei zuerst richtig zu encoden ???

Danke im Voraus,
gonZoX.

  1. Hi,

    Wenn ich versuche per simplexml_load_file eine xml Datei zu laden welche z.B. die Zeichen '&', '^',... enthällt, bekomme ich logischerweise diverse Fehlermeldungen.
    Wie muss ich vorgehen, um die xml Datei zuerst richtig zu encoden ???

    http://de.selfhtml.org/xml/regeln/zeichen.htm#xmleigene
    Meinst du das?

    Oder wie du's automatisch machst? Das kann htmlspecialchars zur Not auch fuer dich uebernehmen, auch wenn's nicht speziell "fuer XML gedacht" ist.
    Je nachdem, wie du die XML-Datei erstellst (DOM-Methoden, o.ae.), solltest du aber natuerlich versuchen, das schon dort erledigen zu lassen.

    MfG ChrisB

    --
    "The Internet: Technological marvel of marvels - but if you don't know *what* you're lookin' for on the Internet, it is nothing but a time-sucking vortex from hell."
    1. Ich habe innerhalb der Nodes Angaben die diverse 'ungültige' Zeichen enthalten, z.B. <STRUCTURE>Nummer ^1 & Nummer ^2</STRUCTURE>, die xml Dateien erstelle ich nicht selber sondern bekomme sie vorgesetzt'.
      Versuche ich nun eine solche xml Datei per :
      $str = simplexml_load_file('./test.xml');
      einzulesen kmmt es verständlicherweise zu den Fehlemeldungen.

      Aber 'htmlspecialchars' hilft mir dabei doch nicht weiter ...

      Thx für weitere Lösungsansätze im Voraus,
      gonZoX.

      1. Hi,

        Aber 'htmlspecialchars' hilft mir dabei doch nicht weiter ...

        Du musst es natuerlich anwenden, bevor du versuchstr, das ganze als XML zu parsen.

        Also nicht mehr direkt die Datei mit simplexml_load_file einlesen (geht ja nicht, kann ja nicht gehen) - sondern erst mal Inhalt in eine Variable einlesen, "ungueltige" Zeichen ersetzen, und dann mit dem Inhalt dieser Variablen ein SimpleXML-Objekt erstellen.

        MfG ChrisB

        --
        "The Internet: Technological marvel of marvels - but if you don't know *what* you're lookin' for on the Internet, it is nothing but a time-sucking vortex from hell."
        1. So, habe jetzt 'per Hand' alle '&' etc entfernt, der IE sowie VisualStudio etc öffnen die xml Datei nun ohne Fehlermeldungen, simplexml allerdings meckert immer noch ....
          Aufbau der xml Datei :
          <?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
          <CATALOGUE>
          <HEADER>....</HEADER>
          <STRUCTURE>....</STRUCTURE>
          usw...
          </CATALOGUE>

          simplexml moniert noch immer einen Fehler : parser error : Start tag expected, '<' not found ...

          So langsam verstehe ich es nicht mehr ....

          cu,gonZoX.

          1. Tach.

            simplexml moniert noch immer einen Fehler : parser error : Start tag expected, '<' not found ...

            So langsam verstehe ich es nicht mehr ....

            Dann verlinke doch bitte Deine XML-Datei, damit wir auch einen Blick darauf werfen können!

            --
            Once is a mistake, twice is Jazz.
  2. Tach.

    Wenn ich versuche per simplexml_load_file eine xml Datei zu laden welche z.B. die Zeichen '&', '^',... enthällt, bekomme ich logischerweise diverse Fehlermeldungen.
    Wie muss ich vorgehen, um die xml Datei zuerst richtig zu encoden ???

    Da eine solche XML-Datei nicht wohlgeformt ist, bringt es nicht viel, sie als XML zu verarbeiten. Entweder sorgt derjenige, der sie generiert, für Wohlgeformtheit bei der Erstellung oder Du unternimmst selber Reparaturversuche. Dazu kannst Du die Datei allerdings nur als große Zeichenkette behandeln, in der Du beispielsweise alle &, die nicht Bestandteil einer Entity sind und sich nicht in einem CDATA-Bereich befinden, durch &amp; ersetzt ...

    An welcher Stelle in Deinem Dokument verursacht ein ^ eigentlich Probleme?

    --
    Once is a mistake, twice is Jazz.