本文介绍了使用 SimpleXML 删除多个空节点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想使用 SimpleXML
这是我的代码:
$xs = file_get_contents('liens.xml')or die("Fichier XML non chargé");
$doc_xml = new SimpleXMLElement($xs);
foreach($doc_xml->xpath('//*[not(text())]') as $torm)
unset($torm);
$doc_xml->asXML("liens.xml");
我通过 print_r()
看到 XPath 正在抓取一些东西,但没有从我的 XML 文件中删除.
I saw with a print_r()
that XPath is grabbing something, but nothing is removed from my XML file.
推荐答案
我知道这篇文章有点旧,但是在你的 foreach
中,$torm
在每个迭代.这意味着您的 unset($torm)
对原始 $doc_xml
对象没有任何作用.
I know this post is a bit old but in your foreach
, $torm
is replaced in every iteration. This means your unset($torm)
is doing nothing to the original $doc_xml
object.
相反,您需要删除元素本身:
Instead you will need to remove the element itself:
foreach($doc_xml->xpath('//*[not(text())]') as $torm)
unset($torm[0]);
###
通过使用simplxmlelement-self-reference.
这篇关于使用 SimpleXML 删除多个空节点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!