<root>
<gallery name="First"/>
<gallery name="Second"/>
<gallery name="Third"/>
</root>
mehrere Attribute umbenennen
ich mehrere "name" Attribute auf einmal umbenennen bin versucht:mit SimpleXML
$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);
Returns:
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)
Wie kann ich php bekommen das Neue zu retten Werte zurück zum XML? Braucht es eine weitere foreach-Schleife? Der Code scheint bereits zu komplex zu werden.
Ich versuche das, aber keine Würfel:
foreach($objXML->xpath('/root/gallery/@name') as $gallery) {
$gallery = $_POST['name'];
}
i don Ich sehe nicht, wie '$ rename' im Code verwendet wurde. – stillstanding
Ich bin mir nicht sicher, ob Sie das suchen, aber yo Sie können eine Variable in einer foreach-Schleife als Referenz verwenden (so dass sie tatsächlich geändert wird). Für Ihren Code wäre das: 'foreach ($ objXML-> xpath ('/ root/gallery/@ name') als & $ gallery) {'. Alle Änderungen, die an "$ gallery" vorgenommen werden, bleiben "hängen". –
Ausgezeichnet, genau das habe ich bereits in meinem Beispiel oben. Es ist das Bit innerhalb der Schleife, das ich aussortieren muss. – Andy