2010-11-18 3 views
4

이것은 이전 질문 이었지만 그 문제에 관해서는 설명하지 않겠습니다. 제 3 자 HTML 문서에서 여러 섹션을 분리했습니다. 일치하는 항목이 있으면 결과에서 특정 태그를 제거해야합니다. 내가 SO에 대한 발견 된 오류 코드 :DOMDocument와 DOMXPath를 사용하여 PHP에서 하위 요소를 올바르게 삭제했습니다.

$name = $xpath->query("//div[@class='leftColBig']//h3")->item(0); 
// remove <span> 
foreach($xpath->query("//span", $name) as $node) 
    $node->parentNode->removeChild($node); 

이 단지 $ 이름에서 아이를 삭제하지 않는 불행한 부작용이 있지만 전체 DOMDocument를가 :(어떻게 그냥 섹션에로 removeChild를 분리 할 수 ​​있습니다 I 쿼리를 사용하여 발견

답변

4

대신 :.

$xpath->query("//span", $name) 

해야 할 것 :

$xpath->query("span", $name) 

//nodename은 부모가 무엇이든 상관없이 모든 노드와 일치합니다. $ contextnode는 쿼리가 //으로 시작될 때 무시됩니다.

+0

감사드립니다. 이제는 내가 6 시간 만 살 수 있다면. :) –

+0

질문과 대답 모두 도움이되었습니다. 감사합니다. –