gpt4 book ai didi

javascript - responseXML 剪辑发送的 XML 数据

转载 作者:行者123 更新时间:2023-11-28 09:33:05 26 4
gpt4 key购买 nike

我是 XMLHttpRequest 的新手,但已成功通过 GET 使用它从服务器更新了时钟。

现在我需要发送 POST 并接收 XML。我在服务器上的 PHP 正在接收帖子,甚至以 XML 格式发回数据,但如果 XML 元素包含类似 html 的代码,我会遇到一个奇怪的问题:responseXML 提供从 html 代码中剪辑的元素文本到最后。

相关代码如下:

PHP 发送 XML:

header( 'Content-type: text/xml' );
echo '<?xml version="1.0" encoding="UTF-8" ?>';
echo "<posts>";
echo "<textblock>Block with html<br />Next line in block</textblock>";
echo "<inputline>input line</inputline>";
echo "</posts>";

根据 Firebug 的完整 XML 响应(注意所有数据都在那里)

<?xml version="1.0"  encoding="UTF-8"   ?><posts><textblock>Block with html<br />
Next line in block</textblock><inputline>input line</inputline></posts>

回到浏览器中,JS 变量 received 得到“Block with html”,没有别的。 HttpPostExch 是 XMLHttpRequest

var received = 
HttpPostExch.responseXML.getElementsByTagName("textblock")[0].firstChild.data;

下一个元素 inputline 可以毫无问题地使用。以上是FF16的情况,IE8也是如此。所以我应该做一些错误的事情来在 XML 中包含 HTML 代码。

知道为什么当 html 存在时代码会这样做吗?

最佳答案

您正在访问 textblock 节点的第一个子节点,该节点是一个带有文本“Block with html” 的文本节点。这里的行为完全是预料之中的。如果您想要整个 textblock 节点,请使用:

HttpPostExch.responseXML.getElementsByTagName("textblock")[0].data;

关于javascript - responseXML 剪辑发送的 XML 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13487574/

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