Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何按属性修改XML节点 $xmlStr='1 福 酒吧 '; $xml=新的SimpleXML($xmlStr);_Php_Simplexml - Fatal编程技术网

Php 如何按属性修改XML节点 $xmlStr='1 福 酒吧 '; $xml=新的SimpleXML($xmlStr);

Php 如何按属性修改XML节点 $xmlStr='1 福 酒吧 '; $xml=新的SimpleXML($xmlStr);,php,simplexml,Php,Simplexml,如何在SimpleXML对象中将Foo更改为Baobab(不使用PHP循环)?当您使用XPath时,正如您所说,它返回一个数组。由于这是您要更改的第一项,因此请使用[0] 要更新该值,必须让SimpleXML知道要设置元素的值,最简单的方法是使用(在本例中)是$foo[0]。虽然$foo不是数组,但它愚弄SimpleXML设置元素的值,而不是为名为$foo的变量赋值 $xmlStr = '<?xml version="1.0" encoding="utf-8"?> <playe

如何在SimpleXML对象中将Foo更改为Baobab(不使用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 SimpleXML($xmlStr);

你把SimpleXML文档弄红了吗?是的。因此,我使用xpath获取相关节点-但是xpath返回一个数组,因此修改它是无用的。我认为这可以帮助您,在示例#9中,前面已经询问过这一点,快速搜索“simplexml中的替换值”会将此页面作为顶部结果。
$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->string[0] = 'Baobab';