qq_25446377 2015-10-28 08:44 采纳率: 0%
浏览 1476

ajax返回xml数据问题(帮忙看一下)

if (xhr.readyState == 4)
{
if (xhr.status == 200)

    {
var myval="";
var myval=xhr.responseXML;
var myvals=xhr.responseText;
window.alert(myvals);
var cons=myval.getElementsByTagName("content");//报错说:Uncaught TypeError: Cannot call method 'getElementsByTagName' of null 
........
}
我用window.alert(myvals)返回的结果为![图片说明](https://img-ask.csdn.net/upload/201510/28/1446021766_307067.png)
以前写的程序返回xml数据都没问题的这次这个不知道错在哪里了
  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-04 14:30
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    你使用了myval.getElementsByTagName("content")来获取XML元素,但是myval是null。这可能是由于以下原因导致的:

    1. myval可能是一个空对象。
    2. myval可能是一个字符串(因为xhr.responseText包含了响应内容)。

    如果你在尝试从myval中获取一个特定的元素时遇到问题,你需要确保myval是一个有效的对象,而不是一个字符串或空对象。例如,你可以检查myval是否为空,或者检查它是否有正确的结构以供你访问其子节点。

    if (!myval || !Array.isArray(myval)) {
        return; // 或者抛出错误
    }
    

    或者

    if (!myval.getElementsByTagName) {
        return; // 或者抛出错误
    }
    

    另外,如果XML文档包含多个<content>元素,请确保你的JavaScript脚本能够正确处理这些元素。例如,如果你只想提取第一个<content>元素的内容,你应该这样做:

    var firstContent = myval.getElementsByTagName('content')[0].textContent;
    console.log(firstContent); // 输出:你的内容
    

    请注意,以上代码示例中的console.log()函数仅用于显示输出。实际应用中,你可能希望将结果存储到变量或其他适当的数据结构中。

    评论

报告相同问题?