【问题标题】:How can I change the name of an XML tag with PHP/SimpleXML?如何使用 PHP/SimpleXML 更改 XML 标记的名称?
【发布时间】:2011-09-14 10:29:49
【问题描述】:

使用 SimpleXML,可以通过键入例如“即时”添加/更改/删除选定节点的属性

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

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

$child->setName('newTagName');

但我在 API 中找不到对应的函数。

提前感谢您的提示!

【问题讨论】:

标签: php xml simplexml


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 顺便说一句,如果你想把它作为一个变量返回,即 $var 你需要使用 $var = $main ->asXML();
    猜你喜欢
    • 1970-01-01
    • 2019-07-14
    • 1970-01-01
    • 2016-05-07
    • 2014-12-16
    • 1970-01-01
    • 2011-03-02
    • 2017-07-16
    相关资源
    最近更新 更多