2014-08-28 6 views
2

У меня есть загруженный файл пользователя с помощью AngularJS и нравится манипулировать содержимым файла с использованием XML. Однако у меня есть проблема с DOMParser, который распознает текстовый файл.Использование FileReader & DOMParser в AngularJS

index.html

<div ng-controller = "myCtrl"> 
     <input type="file" file-model="myFile"/> 
     <button ng-click="uploadFile()">upload me</button> 
    </div> 

app.js

myApp.controller('myCtrl', ['$scope', 'fileUpload', function($scope, fileUpload){ 

    $scope.uploadFile = function(){ 
    var file = $scope.myFile; 

    reader = new FileReader(); 
    reader.onload = function() { 
    showout.value = this.result; 
    txtFile = showout.value; 

    console.log(txtFile); 
    }; 

    reader.readAsText(file); 
    parser=new DOMParser(); 

    xmldoc = parser.parseFromString(txtFile,"text/xml"); 
    console.log(xmlDoc); 

В этом примере txtFile правильно выводится на консоль, в Reader.onLoad. Однако xmlDoc показывает как неопределенный.

Должен ли я ссылаться на файл и преобразовывать его, чтобы его можно было прочитать DOMParser?

ПРИМЕЧАНИЕ: если я заменю txtFile в ... xmldoc = parser.parseFromString ("bob", "text/xml"), код работает.

Заранее спасибо.

ответ

0

Я знаю, что это старый, но я хочу бросить рабочий пример здесь в случае, если люди до сих пор приходят через эту

var parser = new DOMParser(); 
var reader = new FileReader(); 
reader.readAsText(file, "UTF-8"); 
reader.onload = function (evt) { 
    var data = parser.parseFromString(evt.target.result, "application/xml"); 
    console.log(data); 
};