我需要从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?
答案 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,为您的魔法做好准备。