2011-01-12 84 views
1

这可能是一个简单的问题,虽然无法弄清楚如何去做。 我想加载和修改一个XML文件,然后通过PHP保存XML。如何使用jquery更改xml节点的值?

下面是代码:

$.ajax({ 
    type: "GET", 
    url: "menu.xml", 
    dataType: "xml", 
    success: function(xml) { 
    $(xml).find('menu_item').each(function(){ 
    //change the value of menu_item 
    $(this).empty(); 
    $(this).text($("textarea").attr("value")); 
    //send xml to php 
    $.post('save_xml.php', $(xml), function(data){alert("Data Loaded: " + data);}); 
    } 

    } 
}); 

这里是save_xml.php的样子:

<?php 

    $xml = $GLOBALS["HTTP_RAW_POST_DATA"]; 
    $file = fopen("file.xml","w"); 
    fwrite($file, $xml); 
    fclose($file); 
    echo "ok"; 

?> 

回答

3

这是你在找什么?

$(this)是每个menu_items你迭代与.each()

你的代码变得

$(xml).find('menu_item').each(function(){ 
    $(this).text("New Value"); 
}); 

希望这有助于

编辑

要发布这回服务器我会这样做:

$.post('save_xml.php', { xml: $(xml)}, function(data){alert("Data Loaded: " + data);}); 

,然后在PHP文件

<?php 
    $xml = $_POST['xml']; 
    $file = fopen("file.xml","w"); 
    fwrite($file, $xml); 
    fclose($file); 
    echo "ok"; 
?> 

此代码是未经测试,并有可能是任何数量的它不工作的原因,写在文件的权限等

+0

感谢,你很有帮助!现在我怎么发送这个XML到jQuery的PHP?我有一个save_xml.php在服务器上写入xml。 – iulian 2011-01-12 11:40:38