问题
When I do print_r($nodes);
I get:
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
)
)
And now in this case, I can't do this:
$nodes->asXML("c:\\aaa.xml");
because this is an array i could do f.ex:
$nodes[1]->asXML("c:\\aaa.xml");
but I'll get only one element. I need to get all of this array, or better change it to this:
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
)
)
)
How do solve it?
回答1:
Unfortunately, SimpleXML by itself does not easily allow you to do what you want to do. Luckily, DOM does (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");
来源:https://stackoverflow.com/questions/10685139/simplexmlelement-object