从simpleXML中删除节点
问题描述:
我想从web.config文件中取消设置节点,但它似乎没有工作。任何人都知道我在做什么错了?如果有更好的答案,请让我知道?从simpleXML中删除节点
$web_config = simplexml_load_file('web.config');
$nodes = $web_config->children();
$att_name = 'myMap';
$value = '1';
$map_node = $nodes[0]->xpath(sprintf('rewrite/rewriteMaps/rewriteMap[@name="%s"]/add[@value="%d"]', $att_name, $value));
print_r($map_node); // this outpus the correct node
if (!empty($map_node)) {
unset($map_node)
} else {
printf('No maps with value: "%d" found', $value);
}
$web_config->asXML();
答
$web_config = new SimpleXMLElement('web.config',null,true);
$map_node = $web_config->xpath(sprintf('//rewrite/rewriteMaps/rewriteMap[@name="%s"/add[@value="%d"]', 'myMap', 1));
if (!empty($map_node)) {
unset($map_node[0][0]);
}
$web_config->asXml()
这似乎是工作`未设置($节点[0] - > rewrite-> rewriteMaps);`但是我卡在属性值。我将如何获得具有正确属性(name = myMap)的rewriteMaps节点? – Pardoner 2011-02-03 00:18:42
`$ map_node`是匹配的`add`元素的数组。你不想让数组不安全!查看重复的问题以了解如何取消设置SimpleXMLElement。 – salathe 2011-02-03 07:48:50