使用JQuery编辑XML文件内容

时间:2014-01-07 09:11:21

标签: javascript xml jquery

我使用jquery获取xml文件内容并绑定到文本框中,如果有人更改了文本框中的值,同样必须反映在源xml文件中,如何做到这一点,我是xml的新手。

以下是我用来从xml文件中获取数据的代码。

<html><head>

<link rel="stylesheet" type="text/css" media="all" href="style.css" />

<script type="text/javascript" src="jquery.js"></script>

<script type="text/javascript">
    $(document).ready(function() {
        $.ajax({
            type: "GET",
            url: "employees.xml",
            dataType: "xml",
            success: function(xml) {
                $(xml).find('Employee').each(function() {
                    var id = $(this).attr('id');
                    var name = $(this).find('Name').text();
                    var designation= $(this).find('Designation').text();
                    //                        alert(id + '|' + name + '|' + designation);
                    $('<div class="items" id="' + id + '"></div>').html('<input type="text" value="' + name + '">').appendTo('#page-wrap');
                });
            }
        });
    });
    function saveXMLFiles() {

        $("#page-wrap").find('id').each(function() {
            var description = $(this).find('Designation').text();
            alert(description);
        });
    }
 </script>

</head>
<body>
<div id="page-wrap">
    <h1>
        Employees</h1>
</div>
<input type="button" value="Save" onclick="saveXMLFiles();" />

2 个答案:

答案 0 :(得分:1)

  1. 首先创建一个用于更新服务器端XML的Web方法。
  2. 您必须再次编写ajax更新XML的请求。
  3. 这完全取决于您的服务器端。

答案 1 :(得分:0)

记住这些事情:

  1. 您必须在所有函数都可以访问的变量中获取xml的值,以便在有人更改文本框中的值时更改它
  2. 将更新的xml的值传递给服务器;
  3. 所以这样做;

    <script type="text/javascript">
       $(document).ready(function() {
    
        var globalXML = null;
    
        $.ajax({
            type: "GET",
            url: "employees.xml",
            dataType: "xml",
            success: function(xml) {
                globalXML = xml;//this is going to set in global variable
                $(xml).find('Employee').each(function() {
                    var id = $(this).attr('id');
                    var name = $(this).find('Name').text();
                    var designation= $(this).find('Designation').text();
                    //                        alert(id + '|' + name + '|' + designation);
                    $('<div class="items" id="' + id + '"></div>').html('<input type="text" value="' + name + '">').appendTo('#page-wrap');
                });
            }
        });
      });
      function saveXMLFiles() {
    
        $("#page-wrap").find('id').each(function() {
            var description = $(this).find('Designation').text();
    
            //change to globalXML;
            //and send it to server;
            $.ajax({
               type: "POST",
               url: "saveEmployeesToXML",//path to post
               data: globalXML,
               success: function(response) {
                 alert(response);
               }
            });
        }
    });
            alert(description);
        });
      }
    </script>