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

时间:2011-09-14 10:29:50

标签: php xml simplexml

使用SimpleXML,可以通过输入例如“动态”添加/更改/删除所选节点的属性。

$child->addAttribute('n', $occ_order);

有没有办法改变$ child元素的名称?我期待像

这样的东西
$child->setName('newTagName');

但我在API中找不到相应的功能。

提前感谢您的提示!

2 个答案:

答案 0 :(得分:1)

从文档[1]看起来你不能。如果你也可以有点奇怪 - 更改名称会使它成为一个不同的/新的元素。你想要做的是删除该元素并在同一个地方添加一个新元素。但是,虽然有一个addChild方法,但它看起来不像是一个删除方法。所以也许simpleXML不是正确的工具。

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

1 http://php.net/manual/en/book.simplexml.php

2 Remove a child with a specific attribute, in SimpleXML for PHP

答案 1 :(得分:1)

您可以使用unset()将其删除,如果您确切知道它的位置,$main->target将被移除unset($main->target)并再次使用addchild()添加$main->addchild(name, value) }。