我想使用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文件中删除任何内容。
答案 0 :(得分:2)
$file = 'liens.xml';
$xpath = '//*[not(text())]';
if (!$xml = simplexml_load_file($file)) {
throw new Exception("Fichier XML non chargé");
}
foreach ($xml->xpath($xpath) as $remove) {
unset($remove[0]);
}
$xml->asXML($file);
答案 1 :(得分:1)
我知道这篇文章有点旧,但在foreach
中,$torm
会在每次迭代中被替换。这意味着您的unset($torm)
对原始$doc_xml
对象无效。
相反,您需要删除元素本身:
foreach($doc_xml->xpath('//*[not(text())]') as $torm)
unset($torm[0]);
###
使用 simplxmlelement-self-reference 。