设置Simplexml节点内容
setting content of Simplexml node
我有一个 DomElement
<title>
<language id="1" />
<language id="2" />
</title>
我要设置两种语言的内容
$node=$pp->title
foreach($node->language as $lang) {
$lang->nodeValue="Default";
}
我想我必须像获取时那样使用 ->nodevalue。
这给出了
<title>
<language id="1"><nodeValue>Default</nodeValue></language>
<language id="2"><nodeValue>Default</nodeValue></language>
</title>
所以我尝试了
$node=$pp->title
foreach($node->language as $lang) {
$lang="Default";
}
这不会更改值。
我想要
<title>
<language id="1">Default</language>
<language id="2">Default</language>
</title>
这可能是我忽略的非常简单的事情...
答案在这里:
How can I set text value of SimpleXmlElement without using its parent?
$node=$pp->title
foreach($node->language as $lang) {
$lang[0]="Default";
}
您需要设置为元素本身(而不是变量)。
foreach($node->language as $lang) {
$lang->{0} = "Default";
}
我有一个 DomElement
<title>
<language id="1" />
<language id="2" />
</title>
我要设置两种语言的内容
$node=$pp->title
foreach($node->language as $lang) {
$lang->nodeValue="Default";
}
我想我必须像获取时那样使用 ->nodevalue。 这给出了
<title>
<language id="1"><nodeValue>Default</nodeValue></language>
<language id="2"><nodeValue>Default</nodeValue></language>
</title>
所以我尝试了
$node=$pp->title
foreach($node->language as $lang) {
$lang="Default";
}
这不会更改值。
我想要
<title>
<language id="1">Default</language>
<language id="2">Default</language>
</title>
这可能是我忽略的非常简单的事情...
答案在这里:
How can I set text value of SimpleXmlElement without using its parent?
$node=$pp->title
foreach($node->language as $lang) {
$lang[0]="Default";
}
您需要设置为元素本身(而不是变量)。
foreach($node->language as $lang) {
$lang->{0} = "Default";
}