使用PHP删除空XML标记但忽略带有属性的标记

时间:2013-08-05 05:21:27

标签: php xml xpath

我知道可以使用XPath删除空XML标记(如此处所示 - Remove empty tags from a XML with PHP

$xpath = new DOMXPath($doc);

foreach( $xpath->query('//*[not(node())]') as $node ) {
    $node->parentNode->removeChild($node);
}

$doc->formatOutput = true;
echo $doc->savexml();

但是是否可以使用类似的方法仍然删除空标记但保留具有属性的标记?

e.g。

<range starts_at="2012-11-22" ends_at="2012-11-26"></range>

1 个答案:

答案 0 :(得分:3)

尝试使用此XPath

'//*[not(node()) and not(@*)]'