2017-04-20 17 views
1

AngularJSの変数にXMLデータをバインドしようとしています。データは私のサービスから返さ解析されたXMLデータをAngularJS変数にバインドします。

私は、XMLを解析するためにx2jsを使用して、これが返されますXML

<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/"> 
&lt;Response&gt;&#xD; 
    &lt;Firstname&gt;Johanna&lt;/Firstname&gt;&#xD; 
&lt;/Response&gt;</string> 

である:

var jsonResponse = x2js.xml_str2json(response); 

enter image description here

最後に私がバインドします名前から$ scope.firstname

これは私が助けを必要とするところです。私は値をバインドするために何をすべきか分からない。 は、IVEが試したもの:

$scope.firstname = jsonResponse.Response.Firstname; 
> TypeError: Cannot read property 'Firstname' of undefined 

$scope.firstname = jsonResponse.Object.Object.toString.__text.Response.Firstname 
> TypeError: Cannot read property 'Object' of undefined 

アイブ氏は、ファーストネームを取得しようとする異なる組み合わせの束を試したが、どれも機能していません。私は上記のエラーまたは未定義のメッセージを取得します。

私は間違っていますか?助けてください。

答えて

1

特殊文字を含むxml文字列をHTMLでデコードする必要があり、JSONに変換する必要があります。詳細については、下記のスニペットをご覧ください。

私はDecodeHTMLの機能を追加しました。同様に、それをデコードするオプションがあるかどうかを選択できます。

function decodeHtml(html) { 
 
    var txt = document.createElement("textarea"); 
 
    txt.innerHTML = html; 
 
    return txt.value; 
 
} 
 
var x2js = new X2JS(); 
 
var xmlstring = '<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">&lt;Response&gt;&#xD;&lt;Firstname&gt;Johanna&lt;/Firstname&gt;&#xD;&lt;/Response&gt;</string>'; 
 

 
var formattedXML = decodeHtml(xmlstring); 
 
var xmlTOjson = x2js.xml_str2json(formattedXML); 
 

 
var FirstName = xmlTOjson.string.Response.Firstname; 
 

 
alert(FirstName);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdn.rawgit.com/abdmob/x2js/master/xml2json.js"></script>

+1

素晴らしい!!ありがとうございました – JCom09

関連する問題