【问题标题】:Bind parsed XML data to AngularJS variable将解析的 XML 数据绑定到 AngularJS 变量
【发布时间】:2017-09-16 22:41:14
【问题描述】:

我正在尝试将 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);

最后我想将 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

我尝试了很多不同的组合来尝试获取名字,但没有一个有效。我要么收到上述错误,要么收到未定义的消息。

我做错了什么?请帮忙。

【问题讨论】:

    标签: javascript angularjs xml


    【解决方案1】:

    将包含特殊字符的 xml 字符串转换为需要在 HTML 中解码的特殊字符,然后将其转换为 JSON,请在下面找到 sn-p 以获取更多信息。

    我已经为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>

    【讨论】:

    • 太棒了!谢谢
    猜你喜欢
    • 1970-01-01
    • 2013-07-12
    • 2012-05-22
    • 2015-10-22
    • 2017-03-05
    • 1970-01-01
    • 1970-01-01
    • 2013-08-17
    • 1970-01-01
    相关资源
    最近更新 更多