SimpleXML: eliminar un nodo XPath
En este artículo, exploraremos cómo eliminar de manera efectiva un nodo principal de un documento XML usando SimpleXML y XPath.
Comprensión de las limitaciones de SimpleXML
El código proporcionado intenta utilizar SimpleXML para eliminar un nodo principal después de encontrarlo mediante XPath. Sin embargo, la función unset() de SimpleXML solo elimina la referencia del objeto almacenado en una variable, no el nodo en sí.
DOMDocumento al rescate
Para superar las limitaciones de SimpleXML, considere usando DOMDocument, que manipula la estructura de los documentos XML de manera más directa.
Solución usando DOMDocument
Ejemplo Código y salida
$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();
Este código elimina el nodo
Conclusión
DOMDocument permite una manipulación más sólida de documentos XML, incluida la eliminación directa de nodos. Si bien SimpleXML puede ser conveniente para consultas XPath básicas, DOMDocument es una opción más adecuada para tareas de manipulación XML más complejas.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3