$xmlStr = '<?xml version="1.0" encoding="utf-8"?>
<players>
<string name="Paul">Foo</string>
<string name="Peter">Bar</string>
</players>';
$xml = new SimpleXML($xmlStr);
如何在 SimpleXML 对象中将 Foo 更改为猴面包树(不使用 PHP 循环(?
当你按照你所说的方式使用 XPath 时,它会返回一个数组。 由于这是您要更改的第一项,因此请使用[0]
.
要更新值,您必须让 SimpleXML 知道您要设置元素的值,最简单的方法是使用(在这种情况下(是 $foo[0]
。 尽管$foo
不是数组,但它会欺骗 SimpleXML 设置元素的值,而不是为名为 $foo
的变量赋值。
$xmlStr = '<?xml version="1.0" encoding="utf-8"?>
<players>
<string name="Paul">Foo</string>
<string name="Peter">Bar</string>
</players>';
$xml = new SimpleXMLElement($xmlStr);
$foo = $xml->xpath('//string[@name="Paul"]')[0];
$foo[0] = 'Baobab';
echo $xml->asXML();
如果您知道这始终是 XML 的布局,您可以这样做...
$xml->string[0] = 'Baobab';