SimpleXML und DTD

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • SimpleXML und DTD

    Hallo Leute,

    Ich bin relativ neu im XML Thema und habe mir da als erstes die SimpleXML
    Funktionen von PHP5 angeschaut.
    Bisher läuft alles zur vollsten Zufriedenheit da ich nur XML Schnittstellen auslese und sonst keine komplizierten Sachen mache.

    Eine Schnittstelle bereitet mir allerdings Probleme.
    Der XML-String / das XML-File enthält Entities die in einem DTD-File definiert sind.
    Aber wenn ich das File mit Simplexml_load_file einlesen will meckert er immer dass er die Entities e.g. Ö nicht kennt. Offensichtlich wird hier das dtd file gar nicht gelesen bzw. validiert.

    Kann mir jemand helfen.

    lg
    Stefan

  • #2
    LIBXML_DTDVALID (http://de3.php.net/manual/de/ref.lib...bxml.constants)

    Kommentar


    • #3
      Danke für den Tipp.

      Wie muss ich das aufrufen ?

      Stefan

      Kommentar


      • #4
        dritter Parameter von simplexml_load_file()

        Kommentar


        • #5
          Ich glaub ich steht völlig daneben.

          Dieser Aufruf bringt zwar keine Fehlermeldung aber auch nicht das gewünschte Ergebnis,

          $xml = simplexml_load_file('xml_interface_o1_d1_x1.txt','LIBXML_DTDVALID');

          Wenn ich >2 Paramete angegbe meckert er dass ...load_file nur 2 Parameter hat.

          Stefan

          Kommentar


          • #6
            Laut Signatur hat die Funktion 1, 2 oder 3 Parameter:
            object simplexml_load_file ( string filename [, string class_name [, int options]] )

            Aber du übergibst eh den String 'LIBXML_DTDVALID', nicht die Konstante. Guck dir mal die Farben an ...
            PHP-Code:
            echo 'LIBXML_DTDVALID' LIBXML_DTDVALID
            Wenn es noch nicht klar ist, führe die Zeile mal aus!

            Kommentar


            • #7
              Wenn ich es so ausführe

              $xml = simplexml_load_file('xml_interface_o1_d1_x1.txt',LIBXML_DTDVALID);

              dann bekomm ich die Fehlermeldung dass er die Konstante nicht kennt obwohl bei phpinfo das ausgegeben wird
              libXML support active
              libXML Version 2.6.11
              libXML streams enabled

              Stefan

              Kommentar


              • #8
                Aber ob dieser Weg überhaupt der richtige ist, weiß ich nicht. Nur eine Vermutung. So oder so, du solltest endlich mal die Signatur lesen:

                object simplexml_load_file ( string filename [, string class_name [, int options]] )
                $xml = simplexml_load_file ( 'xml_interface_o1_d1_x1.txt' , LIBXML_DTDVALID );

                Kommentar


                • #9
                  Was soll ich denn als class_name angeben ?

                  sobald ich 3 Parameter übergebe kommt diese fehelrmeldung

                  simplexml_load_file() expects at most 2 parameters, 3 given in ...

                  Kommentar


                  • #10
                    "Since PHP 5.1.0 and Libxml 2.6.0, you may also use the options parameter to specify additional Libxml parameters." (simplexml_load_file)

                    Kommentar

                    Lädt...
                    X