<root>
<gallery name="First"/>
<gallery name="Second"/>
<gallery name="Third"/>
</root>
Я пытаюсь переименовать несколько атрибутов "name" одновременно:
$rename = array();
foreach($_POST['name'] as $value) {
$rename[] = $value;
}
$objXML = new SimpleXMLElement(XML_FILE_NAME, null, true);
$gallery = $objXML->xpath('/root/gallery/@name');
print_r($gallery);
print_r($rename);
$objXML->asXML(XML_FILE_NAME);
Возвращает:
Array ( [0] => SimpleXMLElement Object ( [@attributes] => Array ( [name] => First ) ) [1] => SimpleXMLElement Object ( [@attributes] => Array ( [name] => Second ) ) [2] => SimpleXMLElement Object ( [@attributes] => Array ( [name] => Third ) ) )
Array ( [0] => First New [1] => Second New [2] => Third New )
Как мне получить php для сохранения новых значений обратно в XML? Нужен ли еще один цикл foreach? Код кажется уже слишком сложным.
Я пробую это, но без игры в кости:
foreach( $objXML->xpath('/root/gallery/@name') as $gallery ) {
$gallery = $_POST['name'];
}