Как изменить атрибут XML на стороне клиента, а затем сохранить результат на стороне сервера?

Мой вопрос:

Я читаю 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();  %>

person Camellia    schedule 28.03.2011    source источник
comment
Вам нужно приложить усилия, задавая вопрос, если вы хотите, чтобы кто-то заинтересовался!   -  person enguerran    schedule 28.03.2011
comment
@enguerran приложить усилия, как что?... добавить больше тегов? или ?   -  person Camellia    schedule 28.03.2011
comment
Обратите внимание на презентацию. Английский язык и форматирование кода.   -  person BalusC    schedule 28.03.2011
comment
как говорит BalusC: обратите внимание на презентацию.   -  person enguerran    schedule 28.03.2011
comment
Да, спасибо, вы оба правы, я изменил их снова, надеюсь, теперь это более понятно, но я не из англоязычной страны... так что я просто делаю все возможное :)   -  person Camellia    schedule 28.03.2011


Ответы (1)


Вы должны понимать, что 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 на сервере и после этого вернуть результат на страницу.

person HoLyVieR    schedule 28.03.2011
comment
так что я никак не могу передать значение клиентской стороны на серверную? - person Camellia; 28.03.2011
comment
@Camellia Возможно, просто не так, как вы пытаетесь это сделать. Вы должны использовать AJAX для связи с сервером. - person HoLyVieR; 28.03.2011
comment
спасибо, но AJAX сейчас для меня большой предмет, у меня нет достаточно времени, чтобы изучить его с самого начала, шаг за шагом, не могли бы вы помочь мне указать, какую функцию я могу использовать? - person Camellia; 28.03.2011
comment
@Camellia Ajax довольно просто использовать с jQuery. Если вам нужен пример, вы можете взглянуть на документацию по jQuery: api.jquery.com/jQuery .получить - person HoLyVieR; 28.03.2011