PHP und XML

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

  • PHP und XML

    Hallo,

    ich geniere in Delphi.net einen Stream den ich via POST zu einen Server mit PHP sende. Es wird eine XML gesendet:

    Dies sieht z.B. so aus:

    PHP-Code:
    <?xml version="1.0" encoding="charset=ISO-8859-1"?>
    <EnvCrypt xmlns="http://192.168.0.203/EnvisysWebService/Server/envisys.xsd">
    <Info>Register</Info>
    <Version>1.0</Version>
    <Data>Datenklumpen#/?-0</Data>
    </EnvCrypt>
    nun fang ich das ganzemit PHP auf und will es weiter verarbeiten - jedoch liegt hier mein Problem:

    OK!!!<?xml_version"1.0" encoding="charset=ISO-8859-1"?>
    <EnvCrypt xmlns="http://192.168.0.203/EnvisysWebService/Server/envisys.xsd">
    <Info>Register</Info>
    <Version>1.0</Version>
    <Data>Datenklumpen#/?-0</Data>
    </EnvCrypt>!!!<br />
    <b>Warning</b>: SimpleXMLElement::__construct() [<a href='function.SimpleXMLElement---construct'>function.SimpleXMLElement---construct</a>]: Entity: line 1: parser warning : xmlParsePITarget: invalid name prefix 'xml' in <b>C:\wamp\www\EnvisysWebService\Server\lib\serverlib_registrierung.php</b> on line <b>20</b><br />
    <br />
    usw.

    Der PHP Quellcode:

    PHP-Code:
    <?php
    header
    ("Content-type: text/plain");
    include(
    "lib/serverlib_registrierung.php");

    foreach(
    $_POST as $k=>$v$Inhalt $k.$v;
    if (
    get_magic_quotes_gpc()) 
    {      
        
    $Inhalt stripslashes($Inhalt);
    }

    $XMLPars = new Registrierung($Inhalt);
    ?>

    // liegt in einer eigenen Klasse und in einem eigenen File ....
    public function Registrierung($temp)    
        {     
              echo "!!!".$temp."!!!";
              $xml = new SimpleXMLElement(($temp));                      
        }
    Kann mir jemand helfen, die Umwandlung der HTML Tags zu "verhindern" - also in irgend ne Form diesen String wirklich als XML zu "sehen"?

    Chris
    www.software-developers-home.de

  • #2
    Re: PHP und XML

    Bitte was willst du?

    Geht es dir lediglich darum, dein XML in HTML angezeigt zu bekommen? Dann htmlspecialchars().
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Re: Re: PHP und XML

      Original geschrieben von wahsaga
      Bitte was willst du?


      Ich möchte den Inhalt meiner Postvariable, garniert mit XML Tags in ein SimpleXMLElement stecken.

      Geht es dir lediglich darum, dein XML in HTML angezeigt zu bekommen? Dann htmlspecialchars().
      Das isses leider nicht.

      Wer war so clever und hat diese Frage in XML gesteckt? Das Problem hat wirklich NICHTS mit XML zu tun. *stöhn*

      Chris
      www.software-developers-home.de

      Kommentar


      • #4
        Re: Re: Re: PHP und XML

        Original geschrieben von XChris
        Ich möchte den Inhalt meiner Postvariable, garniert mit XML Tags in ein SimpleXMLElement stecken.
        Und genau dabei hast du eine Fehlermeldung bekommen - also beseitige deren Ursache.
        Wer war so clever und hat diese Frage in XML gesteckt?
        Du leider nicht, also habe ich das übernommen.
        Das Problem hat wirklich NICHTS mit XML zu tun. *stöhn*
        Womit denn sonst bitte?
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Re: Re: Re: Re: PHP und XML

          Original geschrieben von wahsaga
          Und genau dabei hast du eine Fehlermeldung bekommen - also beseitige deren Ursache.


          Das hab ich schon alles probiert:

          if (get_magic_quotes_gpc())
          {
          $Inhalt = stripslashes($Inhalt);
          }

          und

          htmlspecialchars

          und

          htmlentities

          Was muß man bei PHP sonst so beim ENCODING beachten? Serialisiert sollte der Kram nicht werden müßen oder?

          Du leider nicht, also habe ich das übernommen.
          Das clever war von mir ironisch gemeint .... ich habe überhaupt keinen Bock auf nen Forum15jahreModeratorenUndBesserwisserNutzerSchlagabtausch. Können wir (beide) nen Gang runter schalten?

          Womit denn sonst bitte?
          Mit PHP.
          Wir haben einen Stream, den wir aus POST lesen und in eine PHP Klasse stecken wollen. Man könnte den Stream auch einfach ein File lenken wollen.

          Das ganze hat nichts mit der hierarchichen Auszeichnungssprache XML zu tun. Ich wäre - da ich mit mehr Antworten dann rechne - froh, wenn das Problem wieder in PHP kommt.

          Chris
          www.software-developers-home.de

          Kommentar


          • #6
            Nachtrag:

            So wie es aussieht, stört irgend nen Zeichen in den ersten beiden Zeilen des XML,

            denn das geht:

            PHP-Code:
            <EnvCrypt>
            <
            Info>Register</Info>
            <
            Version>1.0</Version>
            <
            Data>Datenklumpen#/?-0</Data>
            </EnvCrypt
            jedoch sollte laut Bsp aus dem Handbuch, auch XML Angaben möglich sein. Siehe Hier:

            http://www.php-center.de/de-html-man...simplexml.html
            Zuletzt geändert von XChris; 11.07.2006, 13:43.
            www.software-developers-home.de

            Kommentar


            • #7
              Re: Re: Re: Re: Re: PHP und XML

              Original geschrieben von XChris
              Das ganze hat nichts mit der hierarchichen Auszeichnungssprache XML zu tun.
              Es hat mit dem Verarbeiten von XML-Daten in PHP zu tun.
              Du bekommst dabei eine Fehlermeldung, weil dein XML fehlerhaft ist.
              So wie es aussieht, stört irgend nen Zeichen in den ersten beiden Zeilen des XML
              Tja, vielleicht gehört der Unterstrich in der XML-Deklaration da einfach nicht hin ...?

              Zuletzt geändert von wahsaga; 11.07.2006, 13:45.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Re: Re: Re: Re: Re: Re: PHP und XML

                Original geschrieben von wahsaga
                Es hat mit dem Verarbeiten von XML-Daten in PHP zu tun.
                Du bekommst dabei eine Fehlermeldung, weil dein XML fehlerhaft ist.


                Nein.
                Das XML ist wohlgeformt. Laut W3C. Wenn Du in den XML Tag schaust, siehst Du das ich ein XSD verwende.
                Auch ist es UTF8 losgeschickt wurden.


                Tja, vielleicht gehört der Unterstrich in der XML-Deklaration da einfach nicht hin ...?


                PHP-Code:
                <?xml version="1.0" encoding="charset=ISO-8859-1"?>
                <EnvCrypt xmlns="http://192.168.0.203/EnvisysWebService/Server/envisys.xsd">
                <Info>Register</Info>
                <Version>1.0</Version>
                <Data>Datenklumpen#/?-0</Data>
                </EnvCrypt>
                Ich sehe keinen Unterstrich ... ich lasse mir übrigens GENAU den Inhalt der POSTvariable wieder zurückschicken, unmittelbar, bevor ich das SimpleXMLElement Objekt initialisiere.

                Chris
                www.software-developers-home.de

                Kommentar


                • #9
                  Re: Re: Re: Re: Re: Re: Re: PHP und XML

                  Original geschrieben von XChris
                  Ich sehe keinen Unterstrich ... ich lasse mir übrigens GENAU den Inhalt der POSTvariable wieder zurückschicken, unmittelbar, bevor ich das SimpleXMLElement Objekt initialisiere.

                  Chris
                  Ich aber:

                  OK!!!<?xml[COLOR=red]_[/COLOR]version"1.0" encoding="charset=ISO-8859-1"?>

                  Kommentar


                  • #10
                    ARGH!

                    jetzt seh ichs im Response auch! Betriebsblind!

                    Wo kommt das _ her? Kann das sein, dass PHP die hinmacht?

                    Chris
                    www.software-developers-home.de

                    Kommentar


                    • #11
                      Frage:

                      Ich hab also das Problem, dass ich nen XML versenden muß. Wie liest man in PHP dann besser die _POST Variable aus und steckt das ganze in nen SimpleXMLElement?

                      So wie es aussieht, werden ja eineige zeichen ersetzt von PHP.

                      Chris
                      www.software-developers-home.de

                      Kommentar


                      • #12
                        Hallo,

                        ich habe noch ein wenige rumexperimentiert. Unter anderem habe ich den STREAM direkt nach dem Empfangen in POST untersucht und nach der Behandlung (siehe oben).

                        PHP macht folgendes:

                        Es haut mir einen Unterstrich in den XML Tag, maskiert " mit / und löscht einige =

                        Nun meine Frage - immer noch keine XML Frage - wie bekomme ich PHP dazu, meinen Datenstream so darzustellen, dass er unverändert ankommt?

                        Chris
                        www.software-developers-home.de

                        Kommentar


                        • #13
                          print_r($_POST);
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            Das war der entscheidende Tip!

                            Danke.

                            Es funzt. Habe auf der Clientsache beim Encoding und beim Zusammenbauen des Streams eine klitzekleinigkeit übersehen.
                            www.software-developers-home.de

                            Kommentar

                            Lädt...
                            X