Reputation: 1518
I have a DomElement
<title>
<language id="1" />
<language id="2" />
</title>
I want to set the content of both languages
$node=$pp->title
foreach($node->language as $lang) {
$lang->nodeValue="Default";
}
I presumed I had to use ->nodevalue as I do when getting. This gives
<title>
<language id="1"><nodeValue>Default</nodeValue></language>
<language id="2"><nodeValue>Default</nodeValue></language>
</title>
So I tried
$node=$pp->title
foreach($node->language as $lang) {
$lang="Default";
}
This does not change the value.
I wanted
<title>
<language id="1">Default</language>
<language id="2">Default</language>
</title>
It is probably something very simple I'm overlooking...
Upvotes: 0
Views: 44
Reputation: 2329
You need to set to the element itself (not to the variable).
foreach($node->language as $lang) {
$lang->{0} = "Default";
}
Upvotes: 1
Reputation: 1518
The answer is here:
How can I set text value of SimpleXmlElement without using its parent?
$node=$pp->title
foreach($node->language as $lang) {
$lang[0]="Default";
}
Upvotes: 0