【问题标题】:Remove empty XML tags with PHP but ignore tags with attributes使用 PHP 删除空的 XML 标签,但忽略带有属性的标签
【发布时间】:2013-08-05 05:21:26
【问题描述】:

我知道使用 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();

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

例如

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

【问题讨论】:

    标签: php xml xpath


    【解决方案1】:

    试试这个 XPath

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

    【讨论】:

    • 你知道如何包含只有 void 属性的节点吗?
    猜你喜欢
    • 1970-01-01
    • 2012-01-26
    • 2013-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多