如何在 PHP 中使用 XPath 和 SimpleXML 有效删除父节点?

Barbara Streisand
发布: 2024-10-26 02:22:02
原创
977 人浏览过

How to Effectively Remove a Parent Node Using XPath and SimpleXML in PHP?

如何使用 SimpleXML 删除 XPath 节点

SimpleXML 是一个 PHP 扩展,可简化 XML 的使用。但是,使用 XPath 查询删除父节点可能会令人困惑。

在给定的示例中,代码使用 XPath 使用其 ID 来定位特定项目,并尝试取消设置其父节点。然而,这种方法实际上并没有删除父节点。

要有效地删除节点,您可以使用以下步骤:

  1. 从 XML 字符串创建一个新的 SimpleXMLElement 对象.
  2. 使用 XPath 来定位目标节点,如示例所示。
  3. 利用对象引用上的 unset() 方法将其删除。

修改后的代码如下所示:

<code class="php">$xml = new SimpleXMLElement($xmlString);
$data = $xml->xpath('//items/info[item_id="' . $item_id . '"]');
unset($data[0]);</code>
登录后复制

使用 DOMDocument 的替代方法

或者,您可以使用 DOMDocument 类进一步控制 XML 操作。下面是一个示例:

<code class="php">$doc = new DOMDocument();
$doc->loadXML($xmlString);
$item_id = 456;
$xpath = new DOMXPath($doc);
foreach($xpath->query('//items[info/item_id="' . $item_id . '"]') as $node) {
  $node->parentNode->removeChild($node);
}
echo $doc->saveXML();</code>
登录后复制

此方法会删除指定项目 ID 的整个项目节点。

以上是如何在 PHP 中使用 XPath 和 SimpleXML 有效删除父节点?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!