题
例:
$value1 = "2"; $value2 = "4"; $value3 = ""; xml = '<parentnode> <tag1> ' .$value1. '</tag1> <tag2> ' .$value2. '</tag2> <tag3> ' .$value3. '</tag3> </parentnode>';
XML结果:
<parentnode> <tag1>2</tag1> <tag2>4</tag2> <tag3></tag3> // <- Empty tag </parentnode>
我想要的是!
<parentnode> <tag1>2</tag1> <tag2>4</tag2> </parentnode>
没有像“tag3”这样的空标签的XML
谢谢!
您可以使用
XPath与
predicate not(node())来选择所有没有子节点的元素.
原文链接:https://www.f2er.com/php/139049.html<?PHP $doc = new DOMDocument; $doc->preserveWhiteSpace = false; $doc->loadxml('<parentnode> <tag1>2</tag1> <tag2>4</tag2> <tag3></tag3> <tag2>4</tag2> <tag3></tag3> <tag2>4</tag2> <tag3></tag3> </parentnode>'); $xpath = new DOMXPath($doc); foreach( $xpath->query('//*[not(node())]') as $node ) { $node->parentNode->removeChild($node); } $doc->formatOutput = true; echo $doc->savexml();
版画
<?xml version="1.0"?> <parentnode> <tag1>2</tag1> <tag2>4</tag2> <tag2>4</tag2> <tag2>4</tag2> </parentnode>