Remove empty tags from a XML with PHP

前端 未结 5 1147
悲哀的现实
悲哀的现实 2020-11-27 08:02

Question

How can I remove empty xml tags in PHP?

Example:

 $value1 = \"2\";
 $value2 = \"4\";
 $value3 = \"\";

 xml = \'

        
5条回答
  •  天涯浪人
    2020-11-27 08:23

    You can use XPath with the predicate not(node()) to select all elements that do not have child nodes.

    preserveWhiteSpace = false;
    $doc->loadxml('
        2
        4
        
        4
        
        4
        
    ');
    
    $xpath = new DOMXPath($doc);
    
    foreach( $xpath->query('//*[not(node())]') as $node ) {
        $node->parentNode->removeChild($node);
    }
    
    $doc->formatOutput = true;
    echo $doc->savexml();
    

    prints

    
    
      2
      4
      4
      4
    
    

提交回复
热议问题