问题
如何在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
谢谢!
5 回答
您可以将XPath与predicate
not(node())
一起使用来选择所有没有子节点的元素 .版画
这以递归方式工作并删除以下节点:
仅包含空格
没有属性
没有儿童笔记
CodePad .
使用Xpath生成PHP SimpleXMLElement对象代码的解决方案是:
请注意,不需要使用PHP DOM,DOMDocument,DOMXPath或dom_import_simplexml() .
如果你要做很多这样的事情,那就做一些事情:
理想情况下,您应该使用domdocument .