Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] SimpleXML-Objekt weiter bearbeiten

Einklappen

Neue Werbung 2019

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

  • [Erledigt] SimpleXML-Objekt weiter bearbeiten

    Hallo,

    ich habe gerade folgendes Problem:
    Ich lese den Inhalt einer XML-Datei mit simplexml_load_file() aus.
    Soweit sogut.

    Beispiel XML1:
    Code:
    <wert>
       <wert1>1</wert1>
       <wert2>2</wert2>
       <wert3>
          <wert3_1>3_1</wert3_1>
          <wert3_2>3_3</wert3_2>
       </wert3>
       <wert4>4</wert>
    </wert>
    Mit dieser Beispiel XML-Datei kann ich auf die einzelnen Bereiche mit

    Code:
    $xml = simplexml_load_file("1.xml");
    $wert1 = $xml->wert1;
    $wert2 = $xml->wert2;
    $wert3_1 = $xml->wert3->wert3_1;
    $wert3_2 = $xml->wert3->wert3_2;
    $wert4 = $xml->wert4;
    zugreifen.

    Nun hat meine XML-Datei jedoch folgende Struktur:

    Code:
    <wert>
       <nummer name="eins">
          <wert1>10</wert>
          <wert2>11</wert>
       </nummer>
       <nummer name="zwei">
          <wert1>20</wert>
          <wert2>21</wert>
       </nummer>
    </wert>
    Nun steh ich grad etwas auf dem Schlauch - auch mit durch die späte Stunde - und weiss grad nicht wirklich, wie ich z.B. speziell die Daten aus name="zwei" aus dem Objekt abfragen kann...

    Kann mir da wer auf die sprünge helfen?

  • #2
    im zweifelsfalle einfach mal var_dump($xml) machen.

    Ansonsten kann ich dir nicht helfen, weil ich die Klasse nie benutzt habe.

    Kommentar


    • #3
      Lasse ich über die 2. XML-Datei var_dump laufen, bekomme ich folgende Ausgabe:

      Code:
      object(SimpleXMLElement)#3 (1){ 
         ["nummer"]=>  array(2) { 
            [0]=>  object(SimpleXMLElement)#4 (3) { 
               ["@attributes"]=>  array(1) { 
                  ["name"]=>  string(4) "eins"
               } 
               ["wert1"]=>  string(2) "10"
               ["wert2"]=>  string(2) "11"
            }
            [1]=>  object(SimpleXMLElement)#5 (3) {
               ["@attributes"]=>  array(1) {
                  ["name"]=>  string(4) "zwei"
               }
               ["wert1"]=>  string(2) "20"
               ["wert2"]=>  string(2) "21"
            }
         }
      }
      Nur hilft mir das leider grad nicht weiter :S

      Kommentar


      • #4
        Ich bin mittlerweile vorangekommen, habe nun jedoch ein neues Problem:

        Code:
        object(SimpleXMLElement)#1 (2) {
        	["@attributes"]=>  array(1) {
        		["wert1"]=>  string(5) "10000" 
        	}
        	["lng"]=>  array(2) {
        		[0]=>  object(SimpleXMLElement)#2 (2) {
        			["@attributes"]=>  array(2) {
        				["val"]=>  string(7) "English"
        				["wert"]=>  string(4) "1000" 	}
        			["name1"]=>  array(4) {
        				[0]=>  object(SimpleXMLElement)#7 (1) {
        					["@attributes"]=>  array(1) {
        						["name"]=>  string(4) "eins" }}
        				[1]=>  object(SimpleXMLElement)#8 (1) {
        					["@attributes"]=>  array(1) {
        						["name"]=>  string(4) "zwei" }}
        				[2]=>  object(SimpleXMLElement)#9 (1) {
        					["@attributes"]=>  array(1) {
        						["name"]=>  string(4) "drei" }}
        				[3]=>  object(SimpleXMLElement)#10 (1) {
        					["@attributes"]=>  array(1) {
        						["name"]=>  string(4) "vier" }}}}
        		[1]=>  object(SimpleXMLElement)#3 (2) { 
        			["@attributes"]=>  array(2) {
        				["val"]=>  string(6) "French"
        				["wert1"]=>  string(4) "1000" }
        			["name1"]=>  array(4) {
        				[0]=>  object(SimpleXMLElement)#11 (1) {
        					["@attributes"]=>  array(1) {
        						["name"]=>  string(3) "elf" }}
        				[1]=>  object(SimpleXMLElement)#12 (1) {
        					["@attributes"]=>  array(1) {
        						["name"]=>  string(6) "zwoelf" }}
        				[2]=>  object(SimpleXMLElement)#13 (1) {
        					["@attributes"]=>  array(1) {
        						["name"]=>  string(8) "dreizehn" }}
        				[3]=>  object(SimpleXMLElement)#14 (1) {
        					["@attributes"]=>  array(1) { 
        						["name"]=>  string(8) "vierzehn" }}}}}}
        So sieht die Ausgabe von var_dump() aus.

        Mittels $anz=count($xml) ermittle ich die korrekt Größe des Arrays "lng", nämlich 2.
        Ich scheitere nun jedoch daran, die Größe des Arrays "name1" zu ermitteln...

        Hat jemand nen Tip?

        Kommentar


        • #5
          Es gibt 2 name1-Arrays. Aber für einen Fortgeschrittenen ja kein Problem!

          Kommentar


          • #6
            Kuck mal hier http://de.php.net/simplexml%20 Beispiel 4 !

            Kommentar

            Lädt...
            X