please help me in understanding the problem with replacing the child node
$dom = new DOMDocument();
$dom->load('cheat.xml');
$team1sabbr = $dom->getElementsByTagName('team1sabbr');
$textNode = $dom->createTextNode('value-1');
$textNode = $dom->importNode($textNode, true);
$team1sabbr->replaceChild($textNode, $oldNode);
$dom->save('cheat.xml');
its throwing an error like
Fatal error: Call to undefined method DOMNodeList::replaceChild()
cheat.xml
looks like
<?xml version="1.0"?>
<matches>
<match id="2204">
<Game></Game>
<team1sabbr></team1sabbr>
<team2sabbr></team2sabbr>
You need to modify your code to look like the following:
$team1sabbr = $dom->getElementsByTagName('team1sabbr');
$textNode = $dom->createTextNode('value-1');
foreach ($team1sabbr as $team) {
$team->parentNode->replaceChild($textNode, $team);
}
replaceChild
on the parent node.Edit::
Through comments it seems the question was unclear.
The following is what was required.
$team1sabbr = $dom->getElementsByTagName('team1sabbr');
foreach ($team1sabbr as $team) {
$team->nodeValue = 'value-1';
}
$team1sabbr
is a DOMNodeList
, i.e. a list of Node
s, not a single Node
. You need to pick one of them.