Php 使用SimpleXML删除多个空节点
我想使用Php 使用SimpleXML删除多个空节点,php,xml,xpath,simplexml,Php,Xml,Xpath,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"); 我通过一个pri
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文件中删除任何东西。我知道这篇文章有点旧,但在您的foreach
中,$torm
在每次迭代中都会被替换。这意味着您的unset($torm)
未对原始$doc\u xml
对象执行任何操作
相反,您需要删除元素本身:
foreach($doc_xml->xpath('//*[not(text())]') as $torm)
unset($torm[0]);
###
通过使用SimpleXmlElement自引用。我知道这篇文章有点旧,但在您的
foreach
中,$torm
在每次迭代中都会被替换。这意味着您的unset($torm)
未对原始$doc\u xml
对象执行任何操作
相反,您需要删除元素本身:
foreach($doc_xml->xpath('//*[not(text())]') as $torm)
unset($torm[0]);
###
通过使用SimpleXmlElement自引用。我不相信您实际上是在$doc\u xml中对元素取消设置()。让我查看SimpleXML以了解如何正确删除节点。可能的重复项我不相信您实际上是在$doc_xml中的元素上取消设置()。让我查一下SimpleXML,看看如何正确地删除一个节点。
dom\u import\u SimpleXML()
可能的重复项不是必需的,您可以在SimpleXML中使用unset
直接删除元素节点,而不必切换到dom()。dom\u import\u SimpleXML()
,您可以在simplexml中使用unset
直接删除元素节点,而无需切换到DOM()。