xmlhack.ru XML-форумы
Обсуждение XML и связанных с ним технологий

Редактирование XML-файла средствами Javascript


Автор Сообщение
ZZorro
Новичок

Зарегистрирован: 04.06.2009
Сообщения: 1

[13807] Чт Июн 04, 2009 11:14
Редактирование XML-файла средствами Javascript
Здравствуйте. Суть задачи такова - по нажатию кнопки на html-форме необходимо осуществить изменить значение элемента в XML-файле (физически на диске), например, с минуса на плюс(на JavaScript). Уже 2 дня бьюсь-не получается. может кто подкинет кусок кода.

файл XML:
<?xml version="1.0" encoding="windows-1251"?>
<?xml-stylesheet type="text/xsl" href="base.xsl"?>
<List>
<Tour>
<PunktNaz>Турция</PunktNaz>
<DateOtp>21.06.2009</DateOtp>
<DatePri>29.06.2009</DatePri>
<Tran>Автобус</Tran>
<Hotel>Краки</Hotel>
<Star>4</Star>
<Price>600</Price>
<Bron>+</Bron>
</Tour>


<Tour>
<PunktNaz>Крым</PunktNaz>
<DateOtp>22.07.2009</DateOtp>
<DatePri>29.07.2009</DatePri>
<Tran>Поезд</Tran>
<Hotel>Одесский</Hotel>
<Star>2</Star>
<Price>250</Price>
<Bron>-</Bron>
</Tour>
</List>


Форма:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"/>
</head>
<head>
<SCRIPT LANGUAGE="JavaScript" FOR="window">
function bronir()
{
var selectPunkt = document.getElementById("punkt");
var indexPunkt = selectPunkt.selectedIndex;
var elementPunkt = selectPunkt.options[indexPunkt];
punkt = elementPunkt.value;

var selectDate = document.getElementById("date");
var indexDate = selectDate.selectedIndex;
var elementDate = selectDate.options[indexDate];
date = elementDate.value;

var selectCost = document.getElementById("cost");
var indexCost = selectCost.selectedIndex;
var elementCost = selectCost.options[indexCost];
cost = elementCost.value;



HTMLCode = "";
Document = base.XMLDocument;
for (i=0; i<Document.documentElement.childNodes.length;i++)
{
if (Document.documentElement.childNodes(i).childNodes(0).text == punkt &&
Document.documentElement.childNodes(i).childNodes(1).text==date &&
Document.documentElement.childNodes(i).childNodes(6).text==cost)
{

xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.load("base.xml");

<!-- nodes=xmlDoc.documentElement.childNodes;
<!--nodes.item(i).setAttribute("Bron","+"); -->
x=xmlDoc.getElementsByTagName("Bron")[i].childNodes[0];
x.nodeValue="bron";


x=xmlDoc.getElementsByTagName("Bron");
document.write(x[i].childNodes[0].nodeValue);


<!--var test = Document.createTextNode('+');-->
HTMLCode +=
"<SPAN STYLE='font-style:italic'> Путевка забронирована: </SPAN>"
+ Document.documentElement.childNodes(i).childNodes(7).text
+ "<BR>"



}

}


DisplayDIV.innerHTML=HTMLCode;
}
</SCRIPT>

</head>
<body bgcolor="#FFFFCC">
<XML ID="base" SRC="base.xml"></XML>

<h3>

</h3>


<form>

<table>
<tr>
<td> </td>
<td width="60">
<select id="punkt">
<option value="Турция">Турция
<option value="Крым">Крым
<option value="Болгария">Болгария
<option value="Египет">Египет
</select>
</td>
</tr>

<tr>
<td> </td>
<td>
<select id="date">
<option value="21.06.2009">21.06.2009
<option value="22.07.2009">22.07.2009
<option value="15.06.2009">15.06.2009
<option value="25.06.2009">25.06.2009
</select>
</td>

</tr>

<tr>
<td></td>
<td>
<select id="cost">
<option value="600">600
<option value="250">250
<option value="220">220
<option value="1100">1100
</select>
</td>

</tr>

</table>
</form>
<input type="button" value="Забронировать" width="20" onclick=" bronir()"/>
<br>
<DIV ID="DisplayDIV"></DIV>

</body>
</html>



Вывод на страницу получается (поиск по файлу рабочий), а вот редактирование не могу додумать......помогите плиз
Vasilisk
Наставник

Зарегистрирован: 17.05.2006
Сообщения: 370
Откуда: Украина, Харьков
[13809] Пт Июн 05, 2009 00:06

В код не вникал, ибо читать такое - себе дороже.

В чем конкретно проблема? В невозможности изменить? В невозможности сохранить (xmlDoc.save())?
_________________
С уважением Vasilisk
Уважайте читающих, используйте тэги [code ][/code]
Sergiy
Аспирант

Зарегистрирован: 19.02.2005
Сообщения: 225
Откуда: Киев
Посетить сайт автора
[13849] Ср Июн 17, 2009 14:37

Cохранять можно по POST или PUT запросу весь исправленый XML.
В чём собственно проблема?
_________________
развлекайся и ни в чём себе не отказывай...