如何使用JSP更新XML文件

How to update XML file using JSP

本文关键字:XML 文件 更新 JSP 何使用      更新时间:2024-03-23

我有一个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();

这样做可能吗?如果是,我还缺少什么?提前谢谢。

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

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

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

    和/或

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

也许你可以多解释一下你正在努力实现的目标,然后我们可以提供更多帮助?