使用Javascript创建XML文件

发表于:2007-06-21来源:作者:点击数: 标签:
在客户端创建XML文件可以使用FileSystemObject (FSO) 对象或直接使用XML Document Object Model (DOM)。若使用FSO则客户端必须安装 Window Script 5.5,使用XML DOM则需要在客户端安装有Microsoft? XML Core Services。 安全 性方面需要在IE的安全设置中启用

   

  在客户端创建XML文件可以使用FileSystemObject (FSO) 对象或直接使用XML Document Object Model (DOM)。若使用FSO则客户端必须安装 Window Script 5.5,使用XML DOM则需要在客户端安装有Microsoft? XML Core Services。

安全性方面需要在IE的安全设置中启用ActiveX控件。


1、使用FSO创建XML文件


使用FSO对象的GetSpecialFolder方法获得要创建文件所在目录,(GetSpecialFolder方法参数的设置可参见Window 脚本技术文档),然后使用CreateTextFile方法创建一个文本文件并获得一个指向该文件的对象引用,调用文本文件对象的WriteLine方法向文件中写内容,最后关闭对象。


值得注意的是在使用CreateTextFile创建文件时,最后一个指示文件创建方式的参数应该设置为true以表示以Unicode方式创建,并将XML文件的编码设置为UTF-16,这样创建的XML文件才能正常使用。


<script language=javascript>

function CreateXML(){

    var fso, tempfolder, xmlfile, schar;

    fso = new ActiveXObject("Scripting.FileSystemObject");

    tempfolder = fso.GetSpecialFolder(0);


    xmlfile = fso.CreateTextFile(tempfolder+"XML.XML",true,true);

    schar = '\r';

    xmlfile.WriteLine('<?xml version="1.0" encoding="UTF-16" ?>'+schar);

    xmlfile.WriteLine('<document title="information">'+schar);

    for(var i=0;i<10;i++){

        xmlfile.WriteLine('<xmlnode type="node" name="node'+i+'" />'+schar);

    }

    xmlfile.WriteLine('</document>');

    xmlfile.Close();

}

</script>


2、使用XML DOM创建XML文件


首先创建一个DOMDocument对象,调用其load方法加载一个本地文件,在加载过程中如果文件不存在将会创建一个新文件,然后构造文档内容字符串,构造完后调用loadXML方法加载XML内容,最后调用save方法写文件。


使用XML DOM创建XML 文件需要非常小心内容格式是否正确,否则创建的文件中是不会有任何内容的,因为XMLDOC在写文件时已经判断了格式,如果不正确则save方法会失败。



<script language=javascript>

function CreateXML(){

      var xmldoc, xmlnode;

    xmldoc = new ActiveXObject("Msxml2.DOMDocument.4.0");

    xmldoc.load("C:\\XML.xml");

    schar = '\r';

    xmlhead = '<?xml version="1.0" encoding="UTF-16" ?>'+schar;

    xmltitle = '<documenttitle="information">'+schar;

    xmlnode = '';

    for(var i=0;i<10;i++){

        xmlnode = xmlnode + '<xmlnode type="node" name="node'+i+'" />'+schar;

    }

    xmlfoot = '</document>';

    strXML = xmlhead+xmltitle+xmlnode+xmlfoot;

    xmldoc.loadXML(strXML);

    xmldoc.save("C:\\XML.xml");

}

</script>

原文转自:http://www.ltesting.net