Guten Mittag,
ich hab gerade ein kleines Problem mit simplexml und stehe da total auf dem Schlauch - vllt. kann mir jemand von euch einen Tipp geben.
Ich habe ein XML Objekt, dass so aussieht:
object(SimpleXMLElement)#2 (9) { ["Count"]=> string(4) "1908" ["RetMax"]=> string(4) "1908" ["RetStart"]=> string(1) "0" ["QueryKey"]=> string(1) "1" ["WebEnv"]=> string(56) "NCID_1_398244165_130.14.22.76_5555_1346144640_1334106840" ["IdList"]=> object(SimpleXMLElement)#11 (1) { ["Id"]=> array(1908) { [0]=> string(8) "22920665" [1]=> string(8) "22920663" [2]=> string(8) "22920661" [3]=> string(8) "22920660" [4]=> string(8) "22920659" [5]=> string(8) "22887827" [6]=> string(8) "22887824" [7]=> string(8) "22857958" [8]=> string(8) "22806858" [9]=> string(8) "22718489" [10]=> string(8) "22703687" [11]=> string(8) "22646983" [12]=> string(8) "22586632" [13]=> string(8) "22535429" [14]=> string(8) "22513699" [15]=> string(8) "22505211" [16]=> string(8) "22500134" [17]=> string(8) "22500133" [18]=> string(8) "22500131" [19]=> string(8) "22488999" [20]=> string(8) "22488997" [21]=> string(8) "22488668" [22]=> string(8) "22473944" [23]=> string(8) "22447616" [24]=> string(8) "22325905" [25]=> string(8) "22305139" [26]=> string(8) "22305133" [27]=> string(8) "22305132" [28]=> string(8) "22302412" [29]=> string(8) "22269574" [30]=> string(8) "22236016" [31]=> string(8) "22223432" [32]=> string(8) "22208834" [33]=> string(8) "22200337" [34]=> string(8) "22195591" [35]=> string(8) "22195589" [36]=> string(8) "22174083" [37]=> string(8) "22170276" [38]=> string(8) "22161998" [39]=> string(8) "22150711" [40]=> string(8) "22143541" [41]=> string(8) "22143540" [42]=> string(8) "22143539" [43]=> string(8) "22135085" [44]=> string(8) "22128309" [45]=> string(8) "22122923" [46]=> string(8) "22119615" [47]=> string(8) "22110022" [48]=> string(8) "22109688" [49]=> string(8) "22109685" [50]=> string(8) "22107031" [51]=> string(8) "22106955" [52]=> string(8) "22105698" [53]=> string(8) "22105693" [54]=> stri
Natürlich nur ein kleiner Ausschnitt. Jetzt möchte ich bitteschön alle IDs aus der IdList in einem PHP Array zusammenfassen. Also habe ich sowas hier geschrieben:
private function FilterIDs($Node) {
foreach($Node->children() as $Name) {
$this->FilterIDs($Name);
if($Name->getName() == "IdList") {
// Hier sollte es erfolgreich sein
}
}
}
Soweit so gut. Wenn ich jetzt getName() == "IdList" nehme, kommt einfach nur mit var_dump($Name) ein:
object(SimpleXMLElement)#6 (1) { ["Id"]=> array(1908) { [0]=> string(8) "22920665" [1]=> string(8) "22920663" [2]=> string(8) "22920661" [3]=> string(8) "22920660" [4]=> string(8) "22920659" [5]=> string(8) "22887827" [6]=> string(8) "22887824" [7]=> string(8) "22857958" [8]=> string(8) "22806858" [9]=> string(8) "22718489" [10]=> string(8) "22703687" [11]=> string(8) "22646983" [12]=> string(8) "22586632" [13]=> string(8) "22535429" [14]=> string(8) "22513699" [15]=> string(8) "22505211" [16]=> string(8) "22500134" [17]=> string(8) "22500133" [18]=> string(8) "22500131" [19]=> string(8) "22488999" [20]=> string(8) "22488997" [21]=> string(8) "22488668" [22]=> string(8) "22473944" [23]=> string(8) "22447616" [24]=> string(8) "22325905" [25]=> string(8) "22305139" [26]=> string(8) "22305133" [27]=> string(8) "22305132" [28]=> string(8) "22302412" [29]=> string(8) "22269574" [30]=> string(8) "22236016" [31]=> string(8) "22223432" [32]=> string(8) "22208834" [33]=> string(8) "22200337" [34]=> string(8) "22195591" [35]=> string(8) "22195589" [36]=> string(8) "22174083" [37]=> string(8) "22170276" [38]=> string(8) "22161998" [39]=> string(8) "22150711" [40]=> string(8) "22143541
Und dementsprechend sollte ich doch mit $Name->Id draufzugreifen können und es einfach in ein PHP Array schreiben können? Geht aber irgendwie nicht! $MyArray = $Name->Id; ergibt nur NULL.
Wenn ich stattdessen ein getName() == "Id" nehme, kommt bei var_dump() aufeinmal:
object(SimpleXMLElement)#8 (1) { [0]=> string(8) "22920665" } object(SimpleXMLElement)#10 (1) { [0]=> string(8) "22920663" } object(SimpleXMLElement)#9 (1) { [0]=> string(8) "22920661" } object(SimpleXMLElement)#8 (1) { [0]=> string(8) "22920660" } object(SimpleXMLElement)#10 (1) { [0]=> string(8) "22920659" } object(SimpleXMLElement)#9 (1) { [0]=> string(8) "22887827" } object(SimpleXMLElement)#8 (1) { [0]=> string(8) "22887824" } object(SimpleXMLElement)#10 (1) { [0]=> string(8) "22857958" } object(SimpleXMLElement)#9 (1) { [0]=> string(8) "22806858" } object(SimpleXMLElement)#8 (1) { [0]=> string(8) "22718489" } object(SimpleXMLElement)#10 (1) { [0]=> string(8) "22703687" } object(SimpleXMLElement)#9 (1) { [0]=> string(8) "22646983" } object(SimpleXMLElement)#8 (1) { [0]=> string(8) "22586632" } object(SimpleXMLElement)#10 (1) { [0]=> string(8) "22535429" } object(SimpleXMLElement)#9 (1) { [0]=> string(8) "22513699" } object(SimpleXMLElement)#8 (1) { [0]=> string(8) "22505211" } object(SimpleXMLElement)#10 (1) { [0]=> string(8) "22500134" } object(SimpleXMLElement)#9 (1) { [0]=> string(8) "22500133" } object(SimpleXMLElement)#8 (1) { [0]=> string(8) "22500131" } object(SimpleXMLElement)#10 (1) { [0]=> string(8) "22488999" } object(SimpleXMLElement)#9 (1) { [0]=> string(8) "22488997" } object(SimpleXMLElement)#8 (1) { [0]=> string(8) "22488668" } object(SimpleXMLElement)#10 (1) { [0]=> string(8) "22473944" } object(SimpleXMLElement)#9 (1) { [0]=> string(8) "22447616" } object(SimpleXMLElement)#8 (1) { [0]=> string(8) "22325905" } object(SimpleXMLElement)#10 (1) { [0]=> string(8) "22305139" } object(SimpleXMLElement)#9 (1) { [0]=> string(8) "22305133" } object(SimpleXMLElement)#8 (1) { [0]=> string(8) "22305132" } object(SimpleXMLElement)#10 (1) { [0]=> string(8) "22302412" } object(SimpleXMLElement)#9 (1) { [0]=> string(8) "22269574" } object(SimpleXMLElement)#8 (1) { [0]=> string(8) "22236016" } object(SimpleXMLElement)#10 (1) { [0]=> string(8) "22223432" } object(SimpleXMLElement)#9 (1) { [0]=> string(8) "22208834" } object(SimpleXMLElement)#8 (1) { [0]=> string(8) "22200337" } object(SimpleXMLElement)#10 (1) { [0]=> string(8) "22195591" } object(SimpleXMLElement)#9 (1) { [0]=> string(8) "22195589" } object(SimpleXMLElement)#8 (1) { [0]=> string(8) "22174083" } object(SimpleXMLElement)#10 (1) { [0]=> string(8) "22170276" } object(SimpleXMLElement)#9 (1) { [0]=> string(8) "22161998" } object(SimpleXMLElement)#8 (1) { [0]=> string(8) "22150711" } object(SimpleXMLElement)#10 (1) { [0]=> string(8) "22143541" } object(SimpleXMLElement)#9 (1) { [0]=> string(8) "2214
Und schon ist jede einzelne ID ein eigenes Objekt ???
Wenn ich dann auf die Idee komme, dass ich doch auch IdList nehme könnte und dann mit $Name->Id[0] nur auf das Array zugreife, da laut meiner Struktur von ganz oben, ja es ungefähr so aussieht: IdList->Id->Array von IDs, dann kommt nur:
object(SimpleXMLElement)#7 (1) { [0]=> string(8) "22920665" }
Und mehr nicht!
Was soll ich jetzt bitte tun, damit ich eine ganz simple Funktion habe, die mir aus der bestehenden Struktur ein stumpfes Array aus IDs bastelt?