SimpleXML: XPath 노드 삭제
이 문서에서는 다음을 사용하여 XML 문서에서 상위 노드를 효과적으로 삭제하는 방법을 살펴보겠습니다. SimpleXML 및 XPath.
SimpleXML 이해 제한 사항
제공된 코드는 XPath를 통해 상위 노드를 찾은 후 SimpleXML을 사용하여 상위 노드를 삭제하려고 시도합니다. 그러나 SimpleXML의 unset() 함수는 노드 자체가 아닌 변수에 저장된 객체 참조만 제거합니다.
DOMDocument to the Rescue
SimpleXML의 한계를 극복하려면 다음을 고려하십시오. XML 문서의 구조를 보다 직접적으로 조작하는 DOMDocument를 사용합니다.
솔루션 사용 DOMDocument
예제 코드 및 출력
$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();
이 코드는 item_id가 456인 제품의
결론
DOMDocument를 사용하면 노드 직접 제거를 포함하여 XML 문서를 더욱 강력하게 조작할 수 있습니다. SimpleXML은 기본 XPath 쿼리에 편리할 수 있지만 DOMDocument는 보다 복잡한 XML 조작 작업에 더 적합한 선택입니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3