SimpleXML PHP - Change Value from any Node

Björn Bendig

Normaly i find everything at stackoverflow what iam locking for. but now i need ur help.

my example xml:

    <change>Text to change</change>
    <change1>Text to change</change1>
    <change2>Text to change</change2>
    <change3>Text to change</change3>

Now i need to change the text from the change nodes. But this is a example xml. i dont know the structure from the xml. i only have the change names. is there sth like in js getElementsByTagName("change") what is to when i want to change the text from the change nodes

thanks guys... and sry for my english ;)


Use xpath():

$xml = simplexml_load_string($x); // assume XML in $x
$changes = $xml->xpath("//*[starts-with(local-name(), 'change')]");

This will select all nodes starting with change. The // will select them from whatever position in the tree. The results are stored as SimpleXML elements in an array in $changes.

Now change the selected nodes:

foreach ($changes as $change) 
    $change[0] = "New Text";

Take a look at the changed XML:

echo $xml->asXML();

see it working:

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at


Login to comment