如何在客户端更改XML属性,然后将结果保存在服务器端?

时间:2011-03-28 12:54:28

标签: javascript xml ajax jsp xml-parsing

我的问题是:

我从服务器端读取一个xml文件然后将它们呈现到客户端,接下来我想编辑数据,例如:使用setAttribute()方法来更改它们。现在问题来了: 我不想只在客户端修改它们,但在服务器端也是如此,它们保存了xml文件。我怎么能这样做,使用JSP和Javascript? 这是一些初步想法,但有些部分不起作用...... 例如:“<%count%> = length;”

并且我认为如果我逐行写xml,它确实会使页面加载缓慢... 有没有比这更好的了?

谢谢你:)

<% String attribute[];
   int count;  %>
<script>
  //hide the part of reading xml file to xmlDoc
  var length = xmlDoc.getElementsByTagName("item").length;
  <%count%> = length; // this doesnt work ...???
  for(int i = 0; i < length; i++)
 {
    xmlDoc.getElementsByTagName("item").item[i].setAttribute("score","1");
    <%attribute[i]%> =  xmlDoc.getElementsByTagName("item").item[i].setAttribute("score");   
}
</script>
<%   String xmlString;
     String personNm ={"Bob","Mike","Lily"};
        for (int i;i < count;i++)
           xmlString = "<person score="+attribute[i]+">personNm[i]</person>";

      //here i use a out put buffer to print it line by line...
     outputFile = new File("result.xml");
     outputFile.createNewFile();
     FileWriter outfile = new FileWriter(outputFile);
     outfile.write(xmlString);
     outfile.close();  %>

1 个答案:

答案 0 :(得分:0)

您必须了解JSP是在服务器上执行的,Javascript将在客户端上执行。在服务器上,仅执行JSP并将结果发送到服务器。您的客户将收到以下内容:

<script>
//read xml file to xmlDoc

var length = xmlDoc.getElementsByTagName("item").length;
 = length;
for(int i = 0; i < length; i++)
{
   xmlDoc.getElementsByTagName("item").item[i].setAttribute("score","1");
    = xmlDoc.getElementsByTagName("item").item[i].setAttribute("score");
}
</script>

请注意,在服务器上执行的所有JSP标记以及浏览器接收的内容都是结果。 服务器上没有执行Javascript

您可能想要做的是在服务器上修改XML,然后在页面中返回结果。