js 对XML文件的保存与读取

一、保存

function exportToXml(jsonStr){
    var obj = eval(‘(‘+ jsonStr + ‘)‘);
    var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
    //创建两条处理指令
    var newPI=xmlDoc.createProcessingInstruction("xml","version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"");
    xmlDoc.appendChild(newPI);
    //创建根元素
    var documentElement=xmlDoc.createElement("root");
    xmlDoc.appendChild(documentElement);
    //创建CDATA
    //var newCD=xmlDoc.createCDATASection("This is a CDATASection node");
    //xmlDoc.documentElement.appendChild(newCD);     

    var row=xmlDoc.createElement("row");  

    var task=xmlDoc.createElement("Task");
    task.setAttribute("TaskID",obj.AJGUID);
    var aj_dj_guid=xmlDoc.createElement("AJ_DJ_GUID");
    aj_dj_guid.setAttribute("name", "案件编号");
    var taskname=xmlDoc.createElement("TaskName");
    taskname.setAttribute("name", "任务名称");
    var aj_mc=xmlDoc.createElement("AJ_MC");
    aj_mc.setAttribute("name", "案件名称");
    var aj_dd=xmlDoc.createElement("AJ_DD");
    aj_dd.setAttribute("name", "案件地点");
    var sfhcwc=xmlDoc.createElement("SFHCWC");
    sfhcwc.setAttribute("name", "是否核查完成");
    var hcsj=xmlDoc.createElement("HCSJ");
    hcsj.setAttribute("name", "核查时间");
    var refpointx=xmlDoc.createElement("RefPointX");
    refpointx.setAttribute("name", "巡查地点X坐标");
    var refpointy=xmlDoc.createElement("RefPointY");
    refpointy.setAttribute("name", "巡查地点Y坐标");
    var taskdesc=xmlDoc.createElement("TaskDesc");
    taskdesc.setAttribute("name", "任务说明");
    //添加子元素
    task.appendChild(aj_dj_guid);
    task.appendChild(taskname);
    task.appendChild(aj_mc);
    task.appendChild(aj_dd);
    task.appendChild(sfhcwc);
    task.appendChild(hcsj);
    task.appendChild(refpointx);
    task.appendChild(refpointy);
    task.appendChild(taskdesc);
    //创建text节点,作为元素的内容
    var aj_dj_guidtext=xmlDoc.createTextNode(‘‘);
    var tasknametext=xmlDoc.createTextNode(‘‘);
    var aj_mctext=xmlDoc.createTextNode(‘‘);
    var aj_ddtext=xmlDoc.createTextNode(‘‘);
    var sfhcwctext=xmlDoc.createTextNode(‘‘);
    var hcsjtext=xmlDoc.createTextNode(‘‘);
    var refpointxtext=xmlDoc.createTextNode(‘‘);
    var refpointytext=xmlDoc.createTextNode(‘‘);
    var taskdesctext=xmlDoc.createTextNode(‘‘);
    //为元素赋值
    aj_dj_guid.appendChild(aj_dj_guidtext);
    taskname.appendChild(tasknametext);
    aj_mc.appendChild(aj_mctext);
    aj_dd.appendChild(aj_ddtext);
    sfhcwc.appendChild(sfhcwctext);
    hcsj.appendChild(hcsjtext);
    refpointx.appendChild(refpointxtext);
    refpointy.appendChild(refpointytext);
    taskdesc.appendChild(taskdesctext);
    row.appendChild(task);//添加到row元素中

    var project=xmlDoc.createElement("Project");
    var aj_dj_guid_project=xmlDoc.createElement("AJ_DJ_GUID");
    var xzqdm=xmlDoc.createElement("XZQDM");
    var ajmc=xmlDoc.createElement("AJMC");
    var bz=xmlDoc.createElement("BZ");
    //添加子元素
    project.appendChild(aj_dj_guid_project);
    project.appendChild(xzqdm);
    project.appendChild(ajmc);
    project.appendChild(bz);
    //创建text节点,作为元素的内容
    var aj_dj_guid_projecttext=xmlDoc.createTextNode(obj.AJGUID);
    var xzqdmtext=xmlDoc.createTextNode(‘‘);
    var ajmctext=xmlDoc.createTextNode(obj.DKMC);
    var bztext=xmlDoc.createTextNode(‘‘);
    //为元素赋值
    aj_dj_guid_project.appendChild(aj_dj_guid_projecttext);
    xzqdm.appendChild(xzqdmtext);
    ajmc.appendChild(ajmctext);
    bz.appendChild(bztext); 

    var ajdks=xmlDoc.createElement("AJDKS");
    ajdks.setAttribute("count", "1");
    var ajdk=xmlDoc.createElement("AJDK");
    var attribute=xmlDoc.createElement("Attribute");
    var dkbh=xmlDoc.createElement("DKBH");
    var dkmc=xmlDoc.createElement("DKMC");
    var tdyt=xmlDoc.createElement("TDYT");
    var dkmj=xmlDoc.createElement("DKMJ");
    //添加子元素
    attribute.appendChild(dkbh);
    attribute.appendChild(dkmc);
    attribute.appendChild(tdyt);
    attribute.appendChild(dkmj);
    //创建text节点,作为元素的内容
    var dkbhtext=xmlDoc.createTextNode(‘‘);
    var dkmctext=xmlDoc.createTextNode(obj.DKMC);
    var tdyttext=xmlDoc.createTextNode(‘‘);
    var dkmjtext=xmlDoc.createTextNode(‘‘);
    //为元素赋值
    dkbh.appendChild(dkbhtext);
    dkmc.appendChild(dkmctext);
    tdyt.appendChild(tdyttext);
    dkmj.appendChild(dkmjtext);
    ajdk.appendChild(attribute);//添加到ajdk元素中

    var shape=xmlDoc.createElement("Shape");
    for(i=0;i<obj.PointNumber;i++){
     var point=xmlDoc.createElement("Point");
     point.setAttribute("NO", ""+(i+1)+"");
     point.setAttribute("X", ""+obj.SHAPE[i].X+"");
     point.setAttribute("Y", ""+obj.SHAPE[i].Y+"");
     //添加子元素
     shape.appendChild(point);
    }

    ajdk.appendChild(shape);//添加到ajdk元素中

    var appendix=xmlDoc.createElement("Appendix");
    ajdk.appendChild(appendix);//添加到ajdk元素中
    var appendixtext=xmlDoc.createTextNode(‘‘)
    appendix.appendChild(appendixtext);      

    ajdks.appendChild(ajdk);//添加到ajdks元素中
    project.appendChild(ajdks);//添加到project元素中
    row.appendChild(project);//添加到row元素中

    xmlDoc.documentElement.appendChild(row);
    //alert(xmlDoc.xml);
    xmlDoc.save("D:\\"+obj.DKMC+".xml");
    alert("保存到【D:\\"+obj.DKMC+".xml】成功!");
}

二、读取

function importXmlCoord(filePath){
    try{
        if(window.ActiveXObject) {
        var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async="false"
        xmlDoc.load(filePath);
        var points = xmlDoc.documentElement.getElementsByTagName("Point");
        var coordStr = "1,"+points.length+",";//只有一个圈(不含多圈地)
        for(i=0;i<points.length;i++){
            var no=points[i].getAttribute("NO");
            var x=points[i].getAttribute("X");
            var y=points[i].getAttribute("Y");
            var tempI = y.indexOf(".");
            var tempY = "";
            if (tempI > 0){
                tempY = y.substring(0,tempI);  //y坐标整数位
            }else{
                tempY = yCoords;
            }
            if(isDegreeZone == "0"){
                if (tempY.length == 8){  //y坐标整数位为8,则去掉带号2位
                    tempY = yCoords.substring(2,y.length);
                }else{
                    tempY = y;
                }
            }else{
                tempY = y;
            }
            coordStr += no+","+x+","+y+",";
        }
        coordStr += "0,0,0,1,";
        return coordStr;
      }
    }catch(e){
        alert("导入XML格式坐标失败,请检查格式是否正确。");
    }
}
时间: 2024-10-04 07:21:47

js 对XML文件的保存与读取的相关文章

JS解析XML文件和XML字符串

JS解析XML文件 <script type='text/javascript'>    loadXML = function(xmlFile){        var xmlDoc=null;        //判断浏览器的类型        //支持IE浏览器        if(!window.DOMParser && window.ActiveXObject){            var xmlDomVersions = ['MSXML.2.DOMDocument.

Android——文件的保存和读取

Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中.可以使用Context.MODE_APPEND Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件. Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件. MODE_WOR

js操作XML文件兼容IE与FireFox

最近项目中用到了xml,需求是用户安装产品时先把一系列的数据保存到xml文件中,当执行到最后一步时才写入数据库,这样最大限度的减少了数据库的访问,于是不得不纠结在各浏览器的兼容性的问题(悲哀啊....) 进入正文 下面是一个xml文件 (createInstal.xml) <?xml version="1.0" encoding="utf-8"?><info><Item><id descrption="级别&quo

Android采用SharedPreferences方式进行文件的保存与读取

工程目录: 做软件开发应该都知道,很多软件会有配置文件,里面存放这程序运行当中的各个属性值,由于其配置信息并不多,如果采用数据库来存放并不划算,因为数据库连接跟操作等耗时大大影响了程序的效率,因此我们使用键值这种一一对应的关系来存放这些配置信息.SharedPreferences正是Android中用于实现这中存储方式的技术. 下面直接贴实现代码: package peixun.savaparameter.service; PreferenceService类: <span style="

Android开发系列(五):Android应用中文件的保存与读取

在本篇博客中,我们要实现在Android中"新建文件"和"读取文件": 目标界面: 在输入文件名称之后,输入文件内容,点击保存,可以保存成为一个文档 首先,我们先建立一个Android Project项目,项目名称:File. 然后,我们需要先实现目标视图中的界面: 编辑strings.xml文件: <?xml version="1.0" encoding="utf-8"?> <resources> &

dom4j解析XML文件(2)—读取XML文件

Emp.xml: 1 <?xml version="1.0" encoding="UTF-8"?> 2 <list> 3 <emp id="1"> 4 <name>张三</name> 5 <age>34</age> 6 <gender>男</gender> 7 <salary>3000</salary> 8 <

C语言中关于文件的保存和读取的程序

#include<stdio.h> int main(int argc,const char*argv[]) { //文件的保存 FIlE * fp1; fp1=fopen("//users//huangqiaoping//Desktop//ok.txt","w"); fprintf(fp1,"兄弟连 我来了"): int hp=100; fprintf(fp1,"\n是时候奋斗一下了%"): fclose(fp1

VS之XML文件操作

XML,可扩展的标识语言(eXtensible Markup Language),具有多种优势,所以现在被广泛使用,本文通过一个简单的例子来实现对XML文件的保存和读取操作. 使用工具:VS2008 使用语言:C++ 开发步骤: 1.新建对话框程序 2.添加XML相关类 该类摘自网络 Markup.h // Markup.h: interface for the CMarkup class. // // Markup Release 8.2 // Copyright (C) 1999-2006

Excel开发学习笔记:读取xml文件及csv文件

读取xml文件 有好多种读取xml的方式,xmlDOM比较常见,我使用了另外一种,它以数据流的方式打开文件并读取内容 Imports System.Xml  Dim group As New List(Of String)  Using reader As XmlReader = XmlReader.Create(OpenFileDialog2.FileName)      While reader.ReadToFollowing("group")          reader.Mo