设置Simplexml节点的内容

时间:2016-07-02 03:16:55

标签: php simplexml

我有一个DomElement

<title>
   <language id="1" />
   <language id="2" />
</title>

我想设置两种语言的内容

$node=$pp->title
foreach($node->language as $lang) {
    $lang->nodeValue="Default";
}

我认为我必须像使用时一样使用 - &gt; 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>

这可能是非常简单的我忽视......

2 个答案:

答案 0 :(得分:1)

您需要设置元素本身(而不是变量)。

foreach($node->language as $lang) {
    $lang->{0} = "Default";
}

答案 1 :(得分:0)

答案在这里:

How can I set text value of SimpleXmlElement without using its parent?

$node=$pp->title
foreach($node->language as $lang) {
    $lang[0]="Default";
}