SimpleXML: XPath 노드 삭제
이 기사에서는 다음을 사용하여 XML 문서에서 상위 노드를 효과적으로 삭제하는 방법을 살펴보겠습니다. SimpleXML 및 XPath.
SimpleXML의 제한 이해
제공된 코드는 XPath를 통해 상위 노드를 찾은 후 SimpleXML을 사용하여 상위 노드를 삭제하려고 시도합니다. 그러나 SimpleXML의 unset() 함수는 노드 자체가 아닌 변수에 저장된 객체 참조만 제거합니다.
DOMDocument to the Rescue
SimpleXML의 한계를 극복하려면 다음을 고려하십시오. XML 문서의 구조를 보다 직접적으로 조작하는 DOMDocument를 사용합니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!