gpt4 book ai didi

javascript - AJAX XML回复节点值迭代

转载 作者:行者123 更新时间:2023-11-30 23:51:57 25 4
gpt4 key购买 nike

我非常感谢您在这方面的帮助,因为我似乎无法检测和解决我当前正在开发的网站上的 AJAX 功能所遇到的问题。

我有一个webform它对处理程序 ( .ashx ) 进行异步调用,该处理程序提供 XML 响应,稍后由 Javascript 客户端函数处理该响应,并将其内容放入用户界面中。

我附上了我的处理程序生成的响应的示例,我想知道的是如何获得所有 <body>元素innerHTML (带有文本和子节点)内容将其附加到 <span>用户界面上的元素。谁能帮我解决这个问题吗?

处理程序返回的 XML 响应(通过 Firebug 检查):

<message>
<content>
<messageId>2</messageId>
<from>Barack Obama</from>
<fromMail>barack.obama@whitehouse.gov</fromMail>
<subject>Yes, we can... get World Peace</subject>
<body>Hello, dear citizen. I'm sending you this message to invite you to join us! <a href="http://www.whitehouse.gov">Test link</a> Thank you for your time.</body>
</content>
</message>

影响用户界面的客户端 Javascript 函数 innerHTML属性以及通过 AJAX 返回的数据:

function GetMessageContentsCallback(args, resp) {
//XML Parser
try {
//Internet Explorer
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = "false";
xmlDoc.loadXML(resp);
}
catch (e) {
parser = new DOMParser();
xmlDoc = parser.parseFromString(resp, "text/xml");
}
var msgReply = xmlDoc.getElementsByTagName('message')[0];
var ajaxRespondeBodyInnerHTML = msgReply.getElementsByTagName(body)[0].firstChild.nodeValue;
//this currently only delivers inner text content, without the <a href... bit and subsequent text
document.getElementById("bodySpan").innerHTML = ajaxRespondeBodyInnerHTML;
}

最佳答案

您的想法是正确的,但有语法错误。我测试了一下,发现问题出在这一行,正如预期的那样:

var ajaxRespondeBodyInnerHTML = msgReply.getElementsByTagName("body")[0].firstChild.nodeValue;

body 不在引号中。

参见http://jsbin.com/ufubo/edit一个工作示例。

编辑:另外,如果您想在 XML 中包含 HTML,则需要将内容嵌套在 CDATA 标记中。我已经更新了示例来展示这一点。

编辑:我已更新示例保存它...

关于javascript - AJAX XML回复节点值迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1285063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com