SimpleXML: Excluindo um nó XPath
Neste artigo, exploraremos como excluir efetivamente um nó pai de um documento XML usando SimpleXML e XPath.
Compreendendo as limitações do SimpleXML
O código fornecido tenta usar SimpleXML para excluir um nó pai após encontrá-lo via XPath. No entanto, a função unset() do SimpleXML remove apenas a referência do objeto armazenado em uma variável, não o nó em si.
DOMDocument to the Rescue
Para superar as limitações do SimpleXML, considere usando DOMDocument, que manipula a estrutura de documentos XML de forma mais direta.
Solução Usando DOMDocument
Exemplo de código e saída
$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 remove o nó
Conclusão
DOMDocument permite uma manipulação mais robusta de documentos XML, incluindo a remoção direta de nós. Embora SimpleXML possa ser conveniente para consultas XPath básicas, DOMDocument é uma escolha mais adequada para tarefas de manipulação de XML mais complexas.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3