SimpleXML을 사용하여 XPath 노드를 제거하는 방법
XPath 쿼리를 사용하여 XML 노드를 찾아 제거하는 것은 SimpleXML에서 어려울 수 있습니다. 이 문서에서는 XPath 검색을 통해 식별된 상위 노드 삭제 문제를 다룹니다.
다음 예를 고려하세요.
<code class="php">$xml = simplexml_load_file($filename); $data = $xml->xpath('//items/info[item_id="' . $item_id . '"]'); $parent = $data[0]->xpath("parent::*"); unset($parent);</code>
이 코드의 목표는 상위
이 작업에 대한 해결책은 DOMDocument를 사용하는 것으로 되돌리는 것입니다.
<code class="php">$doc = new DOMDocument; $doc->loadxml('<foo> <items> <info> <item_id>123</item_id> </info> </items> <items> <info> <item_id>456</item_id> </info> </items> <items> <info> <item_id>789</item_id> </info> </items> </foo>'); $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>
이 코드는
위 내용은 전체 구조를 잃지 않고 SimpleXML에서 XPath 노드를 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!