Когда я делаю print_r($nodes);
Я получил:
Array ( [0] => SimpleXMLElement Object ( [kategoria_6] => 1 [opis_6] => 1 [img] => slides/slide0.jpg ) [1] => SimpleXMLElement Object ( [kategoria_6] => 2 [opis_6] => 2 [img] => slides/slide1.jpg ) [2] => SimpleXMLElement Object ( [kategoria_6] => 3 [opis_6] => 3 [img] => slides/slide4.jpg ) [3] => SimpleXMLElement Object ( [kategoria_6] => 4 [opis_6] => 4 [img] => slides/slide3.jpg ) [4] => SimpleXMLElement Object ( [kategoria_6] => 7 [opis_6] => 7 [img] => slides/slide2.jpg ) )
И теперь в этом случае я не могу этого сделать:
$nodes->asXML("c:\\aaa.xml");
потому что это массив, который я мог бы сделать f.ex:
$nodes[1]->asXML("c:\\aaa.xml");
но я получу только один элемент. Мне нужно получить весь этот массив или лучше изменить его на это:
SimpleXMLElement Object ( [item] => Array ( [0] => SimpleXMLElement Object ( [kategoria_6] => 1 [opis_6] => 1 [img] => slides/slide0.jpg ) [1] => SimpleXMLElement Object ( [kategoria_6] => 2 [opis_6] => 2 [img] => slides/slide1.jpg ) [2] => SimpleXMLElement Object ( [kategoria_6] => 3 [opis_6] => 3 [img] => slides/slide4.jpg ) [3] => SimpleXMLElement Object ( [kategoria_6] => 4 [opis_6] => 4 [img] => slides/slide3.jpg ) [4] => SimpleXMLElement Object ( [kategoria_6] => 7 [opis_6] => 7 [img] => slides/slide2.jpg ) ) )
Как это решить?
К сожалению, SimpleXML сам по себе не позволяет вам делать то, что вы хотите сделать. К счастью, DOM делает ( FIXED ):
// Create a new DOMDocument $dom = new DOMDocument('1.0', 'utf-8'); // Create the DocumentElement $documentElement = $dom->appendChild($dom->createElement('objects')); // Loop the SimpleXML elements and import them into DOM foreach ($val as $element) { $documentElement->appendChild($dom->importNode(dom_import_simplexml($element), TRUE)); } // Save to file $dom->save("c:\\aaa.xml");