我试图将XML数据绑定到AngularJS中的变量。
我的服务返回的数据是XML格式
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">
<Response>
<Firstname>Johanna</Firstname>
</Response></string>
然后我使用x2js解析xml并返回:
var jsonResponse = x2js.xml_str2json(response);
最后我想将Firstname绑定到$ 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
我尝试了一堆不同的组合来尝试获取Firstname,但没有一个正在运行。我要么得到上述错误或未定义的消息。
我做错了什么?请帮忙。
答案 0 :(得分: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/"><Response>
<Firstname>Johanna</Firstname>
</Response></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>