如何使用JSP更新XML文件

时间:2013-12-05 22:19:52

标签: java javascript jquery xml jsp

我有一个如下所示的XML文件:

<Names>
 <Person>George</Person>
 <Person>Mary</Person>
 <Person>John</Person>
</Names>

我正在研究JSP中的一个项目。现在,我的程序成功从XML文件中提取内容并将它们输出到div中。我也有一些读取用户输入的文本框。我正在尝试将XML文件的内容(使用客户端)更新为用户输入到文本框中的内容,然后调用Names()方法将更新后的文件的内容输出到div(替换旧内容)。但是,我的XML文件没有更新,我不确定如何执行此操作。这是我的代码:

function getXML(){
          if(window.XMLHttpRequest){
            xmlhttp = new XMLHttpRequest();
          }

         else{
           xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
         }
           xmlhttp.open("GET","Names.xml",false);
           xmlhttp.send();
           return(xmlhttp.responseXML);
        }

         function loadXMLDoc(dname) {


                  if (window.XMLHttpRequest) {
                      xmlhttp = new XMLHttpRequest();
                  }

                  else {
                      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                  }

                   xmlDoc.async = false;
                     xmlDoc.load(dname);
                    xmlDoc.save("Names.xml");
                    return (xmlDoc);
             }


             function insertNames(){


            var name1 = document.getElementById('NameOne').value;
            var name2 = document.getElementById('NameTwo').value;
            var name3= document.getElementById('NameThree').value;

           if(name1 != null || name2 != null || name3 != null){


           xmlDoc=loadXMLDoc("Names.xml");

          var x = xmlDoc.getElementsByTagName("Person")[0].childNodes[0];
          x.nodeValue = weekdayHours;
          var y = xmlDoc.getElementsByTagName("Person")[0].childNodes[1];
          y.nodeValue = saturdayHours;
          var z = xmlDoc.getElementsByTagName("Person")[0].childNodes[2];
          z.nodeValue = sundayHours;
             xmlDoc.save("Names.xml");
              Names(); 
    }
  }
  function Names() {
      var xml = getXML();
      var txt = "";
      $(xml).find("Person").each(function () {
        txt += "<div>" + $(this).text() + "</div>";
      });
      $("body").append(txt);
    }

    Names();

这可能吗?如果是这样,我错过了什么?提前谢谢。

1 个答案:

答案 0 :(得分:0)

我并不完全清楚你想要实现的目标。您的JavaScript包含似乎没有被调用的函数(例如loadXMLDoc和insertNames)。

您无法使用客户端JavaScript更新文件内容。

  • 您可以使用客户端JavaScript来更改显示的内容 浏览器

    和/或

  • 您可以使用客户端JavaScript将用户输入传递给服务器 然后,JSP可以生成不同的XML。

也许你可以解释一下你想要完成什么,然后我们会更有帮助?