2010-12-31 2 views
-1

이는 예를 들어 샘플 입력 PHPPHP를 사용하여 xml의 모든 정크 노드를 제거 했습니까?

를 사용하여 XML의 모든 정크 노드를 제거 :

<?xml version="1.0" encoding="UTF-8"?> 
<root> 
    <!--comment1--> 
    <elem>a</elem> 
    <junk>b</junk> 
    <elem> 
     <!--comment2--> 
     <junk>c<junk>d</junk></junk> 
    </elem> 
    <!--comment3--> 
    <junk>e</junk> 
</root> 

이 결과 XML입니다 :

<?xml version="1.0" encoding="UTF-8"?> 
<root> 

    <elem>a</elem> 

    <elem> 


    </elem> 


</root> 

나는 문서를보고 다음과 같이 적용 :

$doc = new DOMDocument(); 
$doc->loadXML($xml); 
$xpath = new DOMXPath($doc); 

foreach ($xpath->query('/root/') as $elem) { 
    $elem->parentNode->removeChild($elem); 
} 

제 경우는 모든 노드 "j unk "그리고 그들은 XML 문서에서 도처에 올 것이다.

+0

무엇이 질문입니까? –

+0

[PHP - XML ​​요소 삭제] 가능한 복제본 (http://stackoverflow.com/questions/1153697/php-delete-xml-element) –

+0

XPath를 사용하여보다 편리한 솔루션이 여기 있습니다 : http://stackoverflow.com/questions/ 2499694/delete-elements-in-xml –

답변

1
foreach ($xpath->query('//junk') as $elem) 
+0

그것이 작동하지 않습니다, 어쨌든 당신의 대답에 감사드립니다. – kn3l

관련 문제