Как читать XML-файл с помощью FileReader JavaScript?
Мне нужно получить XML из файла ODF. Я попытался с помощью 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);
Как получить XML из ODF-файла, используя JavaScript FileReader?
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, готовый к вашей магии.
Используя ответ как текст:
var xml = data.replace(/[\s\S]+<\?xml/, '<?xml');
xml = xml.replace(/office:document\-meta>[\s\S]+/, 'office:document-meta>');
:)
Если вам нужно загрузить xml-подобный объект jquery:
xml = $(xml);
тогда вы можете использовать JQuery селектор на