使用PHP从XML中删除空标记
发布时间:2020-12-13 13:52:53 所属栏目:PHP教程 来源:网络整理
导读:题 如何在PHP中删除空的xml标记? 例: $value1 = "2"; $value2 = "4"; $value3 = ""; xml = 'parentnode tag1 ' .$value1. '/tag1 tag2 ' .$value2. '/tag2 tag3 ' .$value3. '/tag3 /parentnode'; XML结果: parentnode tag12/tag1 tag24/tag2 tag3/tag3 /
题
如何在PHP中删除空的xml标记? 例: $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> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |