"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puedo eliminar un nodo XPath usando SimpleXML y DOMDocument?

¿Cómo puedo eliminar un nodo XPath usando SimpleXML y DOMDocument?

Publicado el 2024-11-08
Navegar:887

How Can I Delete an XPath Node Using SimpleXML and DOMDocument?

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

  1. Cree un objeto DOMDocument y cargue el archivo XML en él.
  2. Utilice XPath para consultar y seleccionar el nodo de destino.
  3. Eliminar el nodo principal nodo usando $nodo->parentNode->removeChild($node).

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 del producto con item_id 456, lo que da como resultado un documento XML modificado sin ese 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.

Último tutorial Más>

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