题
例:
$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())来选择所有没有子节点的元素.
<?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>
原文地址:https://www.jb51.cc/php/139049.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。