2017-04-20 79 views
1

我试图将XML数据绑定到AngularJS中的变量。将解析的XML数据绑定到AngularJS变量

的数据从我的服务返回的是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> 

然后我用x2js解析XML和得到这个返回:

var jsonResponse = x2js.xml_str2json(response); 

enter image description here

最后,我要绑定名字到$ scope.firstname

这是我需要帮助的地方。我不知道该怎么做绑定价值。 什么香港专业教育学院的尝试:

$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