去掉xml内容中的空节点

  • 2019-09-29
  • 0
  • 0

有时候在生成xml文件时,会存在内容为空的标签,比如

<head>
<content>内容</content>
<content1></content1>
<content2 />
</head>

其中content1和content2内容为空,如果想去掉它们:

$doc = new \DOMDocument();
$doc->preserveWhiteSpace = false;
$doc->loadxml($xmlString);
$xpath = new \DOMXPath($doc);
$x = '//*[not(text() or node() or self::br)]';
while(($nodeList = $xpath->query($x)) && $nodeList->length > 0) {
    foreach ($nodeList as $node) {
        $node->parentNode->removeChild($node);
    }
}
$doc->formatOutput = true;
$xmlString = $doc->savexml();

$xmlString参数为需要去掉空标签的内容,去除后的内容为

<head>
<content>内容</content>
</head>

评论

还没有任何评论,你来说两句吧