Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > XML, XSL > MSXML.DOMDocument


Автор: Ivan.Romanov 25.3.2009, 00:21
Необходимо сделать несложную вещь, столкнулся с такой проблемой.
Вобщем нужно прочитать XML файл на сервере подредактировать его и сохранить по тому же адресу.
Вот что я написал:
Код

var xmlDocument = Server.CreateObject("MSXML.DOMDocument");
var FSO = Server.CreateObject("Scripting.FileSystemObject");
function SaveTempUser()
{
        var xmlPath = Server.MapPath("fileXML.xml");
        if (FSO.FileExists(xmlPath))
        { 
        xmlDocument.load(xmlPath);
        Response.Write("File "+xmlPath+" succsesfully load <BR>");
        }
        else 
        {
            Response.Write("File "+xmlPath+" not exist <BR>");                
        }
        xmlDocument.save(xmlPath);
        Response.Write("File "+xmlPath+" succsesfully saved <BR>");
}
SaveTempUser();

Тут я файл не редактирую, а просто открываю и сохраняю.
Мне выдается ошибка вот в этой строке 
Код
xmlDocument.save(xmlPath);

Причем если поменять эту строку например на такую 
Код
xmlDocument.save(xmlPath1);
(var xmlPath1 = Server.MapPath("fileXML1.xml");) 
 тогда все работает, поэтому никакой речи о различных правах доступа идти не может. Просто не получается сохранить в тот же файл из которого читали. Как я понимаю метод load просто загружает в память xmlку и впринципе к моменту сэйва файл не должен быть заблокирован для записи.
Не подскажете почему у меня это не работает?

Автор: sir_nuf_nuf 25.3.2009, 01:58
Цитата

Как я понимаю метод load просто загружает в память xmlку

Это довольно пространное соображение. вы не знаете какая память используется...
Вообщем довольно плохо читать и писать в один и тот же файл.
Создайте временный файл - сделайте вывод в него, а потом переместите на нужное место.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)