2014-08-28 61 views
2

我有一個用戶上傳的文件,使用AngularJS並喜歡使用XML操縱文件內容。但是,我在DOMParser識別文本文件時遇到困難。在AngularJS中使用FileReader&DOMParser

的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讀取?注意:如果我在... xmldoc = parser.parseFromString(「bob」,「text/xml」)中替換txtFile,代碼將起作用。

在此先感謝。

回答

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); 
}; 
這裏掉落的工作示例