SimpleXML

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

  • SimpleXML

    Hallo Forum,

    ich habe folgenden Code:

    PHP-Code:
    $answer= <<<XML
    <?xml version='1.0' standalone='yes'?>
    <movies>
     <movie>
      <title>PHP: Behind the Parser</title>
      <characters>
       <character>
        <name id="5" cid="Udo Jurgens">Ms. Axa</name>
        <actor>Onlivia Actora</actor>
       </character>
       <character>
        <name>Mr. Coder</name>
        <actor>El ActÓr</actor>
       </character>
      </characters>
      <plot>
       So, this language. It's like, a programming language. Or is it a
       scripting language? All is revealed in this thrilling horror spoof
       of a documentary.
      </plot>
      <rating type="thumbs">7</rating>
      <rating type="stars">5</rating>
     </movie>
    </movies>
    XML;
    $xml = new SimpleXMLElement($answer);


    print "<pre>";
    print_r ($xml);
    print "</pre>";
    Nun möchte ich auf die name->id zugreifen, aber das wird mir bei der Ausgabe gar nicht angezeigt. Wie kann ich auf name->id zugreifen?

    Oder wird das von SimpleXML gar nicht ausgelesen?

    Viele Dank und viele Grüsse
    RON

  • #2
    was gibt denn print_r aus?

    Kommentar


    • #3
      Re: SimpleXML

      id ist im vorliegenden Fall ein Attribut wie jedes andere auch.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Ich habe im xml folgendes:

        <name id="5" cid="Udo Jurgens">Ms. Axa</name>

        Es wird aber nur Ms. Axa ausgegeben und id=5 und cid=Udo Jurgens nicht.

        print_r gibt folgendes aus:

        PHP-Code:
        SimpleXMLElement Object
        (
            [
        movie] => SimpleXMLElement Object
                
        (
                    [
        title] => PHPBehind the Parser
                    
        [characters] => SimpleXMLElement Object
                        
        (
                            [
        character] => Array
                                (
                                    [
        0] => SimpleXMLElement Object
                                        
        (
                                            [
        name] => MsAxa
                                            
        [actor] => Onlivia Actora
                                        
        )

                                    [
        1] => SimpleXMLElement Object
                                        
        (
                                            [
        name] => MrCoder
                                            
        [actor] => El ActÓr
                                        
        )

                                )

                        )

                    [
        plot] => 
           
        Sothis languageIt's like, a programming language. Or is it a
           scripting language? All is revealed in this thrilling horror spoof
           of a documentary.
          
                    [rating] => Array
                        (
                            [0] => 7
                            [1] => 5
                        )

                )


        Kommentar


        • #5
          print_r($xml->movie->characters->character[0]->name);
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Original geschrieben von rlebek
            Es wird aber nur Ms. Axa ausgegeben und id=5 und cid=Udo Jurgens nicht.
            weil das attribute sind. lies doch mal im manual, wie man mit simplexml dran kommt.

            Kommentar


            • #7
              Attribute

              Hallo
              an die Attribute solltest du ganz einfach mit attributes() rankommen.
              Um alle Attribute von einem Element auszulesen einfach in eine foreach schleife packen und du kannst die Attribute auslesen.
              Bsp:
              PHP-Code:
              foreach($xml->movie->characters->character->name->attributes() as $att) {
                  print 
              $att."<br>";

              Ich hoffe ich konnte dir weiterhelfen.

              Grüße

              Kommentar

              Lädt...
              X