如何使用FileReader javascript读取XML文件?

时间:2013-12-31 06:56:24

标签: javascript html5 xml-parsing filereader webodf

我需要从ODF文件中获取XML。我尝试使用FileReader readAsText和readAsBinaryString,但它无法正常工作。

FileReader readAsText 会为odf文件返回一些特殊字符。

使用 readAsBinaryString

var reader = new FileReader()

reader.onloadend=function(e){

    var data = e.target.result;
    //data is not in xml format
    var xml = str2xml(data);
    //getting error
    /*
     using DOM parser for xml parsing
    */
}

reader.readAsBinaryString(file);

如何使用javascript FileReader从ODF文件中获取XML?

2 个答案:

答案 0 :(得分:2)

使用像文字一样的回复:

var xml = data.replace(/[\s\S]+<\?xml/, '<?xml');
xml = xml.replace(/office:document\-meta>[\s\S]+/, 'office:document-meta>');

:)

如果你需要像jquery对象那样加载xml:

xml = $(xml);

然后你可以在

上使用jquery选择器

答案 1 :(得分:2)

这是一个基于浏览器的示例,但这应该适用于其他JavaScript上下文:

制作表格:

<div id="upload">
    <h2>Gimme Yo ODF Cornbread</h2>
    <form enctype="multipart/form-data" method="post">
        <input type="file" name="odfxml" id="odfxml" />
    </form>
</div>

处理上传:(我使用JQuery简洁/简洁)

<script>
    $("#odfxml").change(function(){
        var file = document.getElementById("odfxml").files[0];
                    //You could insert a check here to ensure proper file type
        var reader = new FileReader();
        reader.readAsText(file);
        reader.onloadend = function(){
            var xmlData = $(reader.result);
        };
    });
</script>

xmldata变量包含您的XML,为您的魔法做好准备。