如何使用jquery更改xml节点的值?

时间:2011-01-12 09:24:34

标签: jquery xml ajax

这可能是一个简单的问题,但无法弄清楚如何做到这一点。 我想加载和修改一个xml文件,然后通过php保存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";

?> 

1 个答案:

答案 0 :(得分:2)

这是你在找什么?

$(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";
?> 

此代码未经测试,可能有多种原因无效,对文件写入权限等。