2011-02-02 7 views
0

web.configファイルからノードの設定を解除しようとしていますが、動作していないようです。誰でも私が間違っていることを知っている?より良いapprocheがあれば教えてください?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(); 
+0

これは、 '設定解除($ノード[0] - > rewrite-> rewriteMaps)を動作するようです;'私は、属性値にこだわっています。 rewriteMapsノードを正しい属性(name = myMap)で取得するにはどうすればよいですか? – Pardoner

+0

'$ map_node'は、一致する' add'要素の配列です。あなたは配列を設定解除したくないです! SimpleXMLElementの設定を解除する方法については、重複した質問を参照してください。 – salathe

答えて

-1
$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

それは醜いです。 – Cheeso

+0

@Cheeso:これ以上はありません。 – hakre

関連する問題