Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.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/SimpleXML更改XML标记的名称?_Php_Xml_Simplexml - Fatal编程技术网

如何使用PHP/SimpleXML更改XML标记的名称?

如何使用PHP/SimpleXML更改XML标记的名称?,php,xml,simplexml,Php,Xml,Simplexml,使用SimpleXML,可以通过键入例如 $child->addAttribute('n', $occ_order); 有没有办法改变$child元素的名称?我期待着类似的事情 $child->setName('newTagName'); 但是我在API中找不到相应的函数 提前感谢您的提示 从文档[1]中可以看出,您不能。如果你也可以的话,那会有点奇怪-更改名称会使它成为一个不同的/新的元素。您要做的是删除该元素并在同一位置添加一个新元素。然而,虽然有addChild方法,但它看

使用SimpleXML,可以通过键入例如

$child->addAttribute('n', $occ_order);
有没有办法改变$child元素的名称?我期待着类似的事情

$child->setName('newTagName');
但是我在API中找不到相应的函数


提前感谢您的提示

从文档[1]中可以看出,您不能。如果你也可以的话,那会有点奇怪-更改名称会使它成为一个不同的/新的元素。您要做的是删除该元素并在同一位置添加一个新元素。然而,虽然有addChild方法,但它看起来不像是delete方法。因此,simpleXML在这里可能不是合适的工具

编辑:simpleXML确实不提供删除方法。有关如何执行此操作的信息,请参阅此答案[2]

一,


2

如果您确切知道它的位置,您可以使用
unset()
删除它,即
$main->target
将作为
unset($main->target)
删除,并使用
addchild()
再次添加它,即
$main->addchild(名称、值)
,顺便说一句,可能的重复项,如果希望将其作为变量返回,即$var,则需要使用$var=$main->asXML();