我有一个如下所示的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();
这可能吗?如果是这样,我错过了什么?提前谢谢。
答案 0 :(得分:0)
我并不完全清楚你想要实现的目标。您的JavaScript包含似乎没有被调用的函数(例如loadXMLDoc和insertNames)。
您无法使用客户端JavaScript更新文件内容。
您可以使用客户端JavaScript来更改显示的内容 浏览器
和/或
您可以使用客户端JavaScript将用户输入传递给服务器 然后,JSP可以生成不同的XML。
也许你可以解释一下你想要完成什么,然后我们会更有帮助?