关于javascript:JavaScript如何解析本地xml文件

49次阅读

共计 1183 个字符,预计需要花费 3 分钟才能阅读完成。

我的项目性能

本地解析

上传文件

<input
    class="input"
    ref="file"
    type="file"
    @change="handleFileChange"
/>       

解析 file 对象

获取 file 对象,获取到本地 url 门路地址

// 获取本地上传文件门路
const getUploadUrl = function(flie) {
    let url = "";
    if (window.createObjectURL != undefined) {
        // basic
        url = window.createObjectURL(flie);
    } else if (window.webkitURL != undefined) {
        // webkit or chrome
        url = window.webkitURL.createObjectURL(flie);
    } else if (window.URL != undefined) {// mozilla(firefox)
        url = window.URL.createObjectURL(flie);
    }
    return url; // 返回这样的一串地址 blob:http://www.xxxx.com/2c230fa5-ecc4-4314-ae7c-c39eaa66a945
};

解析文件,取得 xml 对象

const loadXML = function(xmlFile) {
    var xmlDom = null;
    if (window.ActiveXObject) {xmlDom = new ActiveXObject("Microsoft.XMLDOM");
        xmlDom.async = "false";
        xmlDom.load(xmlFile);
    } else if (
        document.implementation &&
        document.implementation.createDocument
    ) {var xmlhttp = new window.XMLHttpRequest();
        xmlhttp.open("GET", xmlFile, false);
        xmlhttp.send(null);
        xmlDom = xmlhttp.responseXML;
    } else {xmlDom = null;}
    return xmlDom; // 返回的是一个 doucument 的对象
};

document 对象转字符串

let url = getUploadUrl(file); // 文件对象
let xml = loadXML(url);
let text = new XMLSerializer().serializeToString(xml) // 将 text 赋值给 textarea 阔以了

// 赋值文本框
var element = document.getElementById('textarea');
element.value  = text 

会呈现乱码

解决乱码

应用 notepat++ 将文件关上,转换成 UTF- 8 编码格局,而后另存为一份新的文件

正文完
 0