我试图用php删除部分xml文件。 links.xml文件如下所示:
<?xml version='1.0' encoding='UTF-8'?>
<pages>
<link url="http://example.com">
<title>Who won the world series</title>
</link>
<link url="http://anotherexample.com">
<title>Who won the super bowl</title>
</link>
</pages>
如您所见,我在上面的文件中有两个不同的条目。在我的实际文件中,我有很多这些。我想要做的是,使用php从文件中删除一个<link>
节点。我怎么能去做呢?
答案 0 :(得分:2)
我通过查看this question想出了如何做到这一点。 你可以这样做:
<?php
$fild = '../XML/link.xml';
$sxe = simplexml_load_file($file);
$nodeURL = $sxe->xpath('link[@url="http://example.com"]');
$noteToRemove = $nodeURL[0];
unset($noteToRemove[0]);
$sxe->asXML($file);
?>
这适用于我在上面添加的xml文件
答案 1 :(得分:0)
使用DOM + XPath很容易:
$dom = new DOMDocument();
$dom->load($sourceFile);
$xpath = new DOMXPath($dom);
foreach ($xpath->evaluate('//link[@url="http://example.com"]') as $node) {
$node->parentNode->removeChild($node);
}
echo $dom->save($targetFile);