Ich habe eine XML, die viele Tausende von Knoten mit Informationen über sie in Attributen enthält. Jeder Knoten ist, wie:XML-Attribute für Arrays (PHP)
<Class Option1="fiahfs;if" Option2="fiowfr0r0" ClassID="1">
<Class Option1="ro;ewaj;frwajro" Option2="afj;wh;fha" Option3="34014upkla" ClassID="2">
....
I, dass Informationen in PHP-Arrays mit Array-Namen zu analysieren, müssen Attributnamen zu sein, und die Anzahl von Element-Array in gleich ClassID Attribute. Das Problem ist, dass einige Knoten Attribute haben, die andere Knoten ich nicht habe. Früher habe ich vorher -> Attribute() für ein ausgewähltes Element als
$a => $b, $$a=array();
dann
${$a}[(integer)$products['ClassID']]=$b
Wo Produkte $ ist simplexml Element bekam von Parsen von XML mit XPath. Das gab mir im Grunde, was ich brauchte - ich hatte ein paar Arrays und ich konnte meine Anfragen wie $ Option1 [1], $ Option2 [1], Option1 [2] ... etc.
Aber das Problem ist, dass, wenn ich diese Struktur nur mithilfe der Attributliste eines ausgewählten Elements erstellen -Es gibt Elemente, die dieses eine Element nicht haben, aber andere haben, und nach einem Array erstellen und dann XML analysieren - Es wird keine Arrays geben. Wenn ich zum Beispiel Arrays aus [0] dieses Beispiels erzeuge, erhält ich $ Option1, $ Option2, aber keine $ Option3.
Wenn ich meinen Code wieder aufgebaut:
foreach ($XML->xpath('/idspace/Class') as $products){
foreach($products->attributes() as $a => $b){
if(!isset($$a) $$a=array();
${$a}[(integer)$products['ClassID']]=$b;
}}
Und danach habe ich ($ ClassID) zu foreach versuchte - `ve bekam nur ein Element in diesem Array. Wie kann ich jedes XML-Attribut zu Array analysieren, während das Attribut "ClassID" als Elementnummer im Array verwendet wird?
'$ XmlElement-> Kinder();' ' – Bobot
$ {a $} [(integer) $ Artikel [ 'ClassID']] [] = $ b'? –