如何使用 SimpleXML 删除 XPath 节点
SimpleXML 是一个 PHP 扩展,可简化 XML 的使用。但是,使用 XPath 查询删除父节点可能会令人困惑。
在给定的示例中,代码使用 XPath 使用其 ID 来定位特定项目,并尝试取消设置其父节点。然而,这种方法实际上并没有删除父节点。
要有效地删除节点,您可以使用以下步骤:
修改后的代码如下所示:
<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中文网其他相关文章!