使用SimpleXML,可以通过输入例如“动态”添加/更改/删除所选节点的属性。
$child->addAttribute('n', $occ_order);
有没有办法改变$ child元素的名称?我期待像
这样的东西$child->setName('newTagName');
但我在API中找不到相应的功能。
提前感谢您的提示!
答案 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)
}。