PHP   发布时间:2019-10-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用PHP从XML中删除空标记大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何在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

谢谢!

解决方法

您可以使用 XPathpredicate 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>

大佬总结

以上是大佬教程为你收集整理的使用PHP从XML中删除空标记全部内容,希望文章能够帮你解决使用PHP从XML中删除空标记所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。