SimpleXML:删除 XPath 节点
在本文中,我们将探索如何使用以下方法有效地从 XML 文档中删除父节点SimpleXML 和 XPath。
了解 SimpleXML 的限制
提供的代码尝试使用 SimpleXML 在通过 XPath 找到父节点后删除它。但是,SimpleXML 的 unset() 函数仅删除存储在变量中的对象引用,而不是节点本身。
DOMDocument 来救援
要克服 SimpleXML 的限制,请考虑使用 DOMDocument,更直接地操作 XML 文档的结构。
使用 DOMDocument 的解决方案
示例代码和输出
<code class="php">$doc = new DOMDocument; $doc->loadXML(...); $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>
此代码删除了
结论
DOMDocument 允许对 XML 文档进行更稳健的操作,包括直接删除节点数。虽然 SimpleXML 可以方便地执行基本的 XPath 查询,但 DOMDocument 更适合更复杂的 XML 操作任务。
以上是如何使用 SimpleXML 和 DOMDocument 删除 XPath 节点?的详细内容。更多信息请关注PHP中文网其他相关文章!