SimpleXML을 사용하여 XPath 노드를 제거하는 방법
SimpleXML은 XML 작업을 단순화하는 PHP 확장입니다. 그러나 XPath 쿼리를 사용하여 상위 노드를 제거하는 것은 혼란스러울 수 있습니다.
주어진 예에서 코드는 XPath를 사용하여 해당 ID를 사용하여 특정 항목을 찾고 해당 상위 노드의 설정을 해제하려고 시도합니다. 그러나 이 접근 방식은 실제로 상위 노드를 제거하지 않습니다.
노드를 효과적으로 제거하려면 다음 단계를 사용할 수 있습니다.
수정된 코드는 다음과 같습니다.
<code class="php">$xml = new SimpleXMLElement($xmlString); $data = $xml->xpath('//items/info[item_id="' . $item_id . '"]'); unset($data[0]);</code>
DOMDocument를 사용한 대체 접근 방식
또는 DOMDocument 클래스를 사용하여 XML 조작을 추가로 제어할 수 있습니다. 예는 다음과 같습니다.
<code class="php">$doc = new DOMDocument(); $doc->loadXML($xmlString); $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>
이 방법은 지정된 항목 ID에 대한 전체 항목 노드를 제거합니다.
위 내용은 PHP에서 XPath 및 SimpleXML을 사용하여 상위 노드를 효과적으로 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!