删除 SimpleXML 中的节点
查询 XPath 节点
使用以下命令删除 SimpleXML 中的节点XPath,按照以下步骤操作:
节点删除
要删除所选节点的父节点,不能使用 unset($父)。相反,您需要使用 __unset() 方法或恢复为 DOMDocument。
使用 __unset()
当您尝试取消设置时,会调用 __unset() 方法对象的属性。要使用 __unset() 删除节点,请创建一个新的 SimpleXMLElement 对象并取消设置所需的节点,如下所示:
<code class="php">$newNode = new SimpleXMLElement('<a><b></b></a>'); unset($newNode->b); echo $newNode->asxml(); // Prints <a></a></code>
使用 DOMDocument
DOMDocument 提供更多对 XML 操作的详细控制。使用 DOMDocument 删除节点:
以 DOMDocument 为例
<code class="php">$doc = new DOMDocument; $doc->loadxml('<foo><items><info><item_id>123</item_id></info></items></foo>'); $item_id = 123; $xpath = new DOMXpath($doc); foreach ($xpath->query('//items[info/item_id="' . $item_id . '"]') as $node) { $node->parentNode->removeChild($node); } echo $doc->savexml(); // Prints <foo><items><info><item_id>123</item_id></info></items></foo></code>
通过使用这些技术,您可以使用 SimpleXML 和 DOMDocument 有效地从 XML 文档中删除节点。
以上是如何在 PHP 中使用 SimpleXML 和 DOMDocument 从 XML 文档中删除节点?的详细内容。更多信息请关注PHP中文网其他相关文章!