[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Изменение документа xml из кода ajax
Mimic
Подскажите, пожалуйста. Задача следующая. Хочу удалить с помощью кода узел из документа на диске. Код удаляет узел из документа в памяти, как сделать то же самое с самим документом? Чем еще можно писать в файл xml (без необходимости в вебсервере)? Спасибо.
Код
objXML = new ActiveXObject("MSXML2.DOMDo***ent.4.0");
objXML.async = false;
objXML.load("newscontent.xml");
var xmlHeader = objXML.getElementsByTagName("header")[0];
objXML.do***entElement.firstChild.removeChild(xmlHeader);

newscontent.xml:
Код
<?xml version="1.0"?>
<newscontent>
 <news id="1">
   <header>News #1</header>
   <date>2009-08-29</date>
   <content>This is the content of #1 news</content>
 </news>
 <news id="2">
   <header>News #2</header>
   <date>2009-09-04</date>
   <content>This is the content of #2 news</content>
 </news>
</newscontent>





Спустя 17 часов, 6 минут, 4 секунды (16.09.2009 - 13:50) Гость_hara написал(а):
Пару вариантов:
1. посмотри в сторону document.execCommand('SaveAs',false,'example.xml');
2. есть такая вещь как TiddlyWiki которая написана на js, вот оттуда можешь выдрать функции
для сохранения, т.е.:
PHP
&#60;script>
function saveFile(fileUrl,content)
{
    var 
mozillaSaveFile(fileUrl,content);
    if(!
r)
        
ieSaveFile(fileUrl,content);
    if(!
r)
        
javaSaveFile(fileUrl,content);
    return 
r;
}
// Returns null if it can't do it, false if there's an error, true if it saved OK
function mozillaSaveFile(filePath,content)
{
    if(
window.Components) {
        try {
            
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
            var 
file Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
            
file.initWithPath(filePath);
            if(!
file.exists())
                
file.create(0,0664);
            var 
out Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);
            
out.init(file,0x20|0x02,00004,null);
            
out.write(content,content.length);
            
out.flush();
            
out.close();
            return 
true;
        } catch(
ex) {
            return 
false;
        }
    }
    return 
null;
}
// Returns null if it can't do it, false if there's an error, true if it saved OK
function ieSaveFile(filePath,content)
{
    
ieCreatePath(filePath);
    try {
        var 
fso = new ActiveXObject("Scripting.FileSystemObject");
    } catch(
ex) {
        return 
null;
    }
    var 
file fso.OpenTextFile(filePath,2,-1,0);
    
file.Write(content);
    
file.Close();
    return 
true;
}
function 
javaSaveFile(filePath,content)
{
    try {
        if(
document.applets["TiddlySaver"])
            return 
document.applets["TiddlySaver"].saveFile(javaUrlToFilename(filePath),"UTF-8",content);
    } catch(
ex) {
    }
    try {
        var 
= new java.io.PrintStream(new java.io.FileOutputStream(javaUrlToFilename(filePath)));
        
s.print(content);
        
s.close();
    } catch(
ex) {
        return 
null;
    }
    return 
true;
}

как я понию в опере нужно делать через java(не путать с javascript) плагин TiddlySaver.jar
который кстати можешь стащить с оффсайта TiddlyWiki и там же скачать сам скрипт wiki
который состоит из 1 файла empty.html
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.