我的问题是:
我从服务器端读取一个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(); %>
答案 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,然后在页面中返回结果。