Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Chrome和Firefox在处理xml字符串方面的差异_Javascript_Jquery_Xml_Google Chrome_Firefox - Fatal编程技术网

Javascript Chrome和Firefox在处理xml字符串方面的差异

Javascript Chrome和Firefox在处理xml字符串方面的差异,javascript,jquery,xml,google-chrome,firefox,Javascript,Jquery,Xml,Google Chrome,Firefox,我在两种浏览器中解析从ajax请求获得的XML字符串时遇到了一些问题。当我这样做的时候 totalResults = parseInt($(data).find("totalResults").text()); 我得到一个值,但是在Firefox中,当执行同一段代码时,我得到“NaN” 两种浏览器中的.typedata都将数据报告为“对象”。有人知道我如何在这两种浏览器中都获得这个值吗?几天来,我完全被这件事难住了: 编辑: 一些代码示例: function getAllProgrammes(

我在两种浏览器中解析从ajax请求获得的XML字符串时遇到了一些问题。当我这样做的时候

totalResults = parseInt($(data).find("totalResults").text());
我得到一个值,但是在Firefox中,当执行同一段代码时,我得到“NaN”

两种浏览器中的.typedata都将数据报告为“对象”。有人知道我如何在这两种浏览器中都获得这个值吗?几天来,我完全被这件事难住了:

编辑: 一些代码示例:

function getAllProgrammes()
        {
           requestAll().done(function (items) {
              console.log(items, $.parseXML(items));
              $(items).find('entry').each(function () {
                 programme = parseProgramme($(this));
                 $programmesData.push(programme);
              });

              // Now we can parse all the data and create a list :)
              parseProgrammesData($programmesData);
              $("#found").append('Found ' + $totalCount + ' programmes');
           });
           return;
然后调用requestall

function requestAll() {
           return requestItems(1, 999, []);
        }

function requestItems(pageStart, pageEnd, items) {
           return request(pageStart, pageEnd).then(function (data) {
              totalResults = parseInt($(data).find("totalResults").text());
              console.log('total ', totalResults, ' xml ', $.type(data));
              if (pageEnd > totalResults || isNaN(totalResults)) {
                 return items;
              } else {
                 $("div#status").html('Loading events from ' + pageEnd + ' to ' + totalResults);
                 return requestItems(pageEnd, pageEnd + 999, items.concat(data));
              }
           });
        }
请求只执行ajax调用

function request(pageStart, pageEnd) {
           $requestParams['startindex'] = pageStart;
           $requestParams['endindex'] = pageEnd;

           return $.ajax({
              url: "http://blahurl",
              method: 'GET',
              dataType: 'xml',
              data: $.param($requestParams)
           });
        }
我询问的区域是console.log:console.log'total',totalResults',xml',$.typedata

在firefox中,它给了我total NaN xml对象,而在chrome total 1867中,它给了我xml对象

所以我想从中提取我需要的信息

<atom:feed xmlns:atom="http://www.w3.org/2005/Atom" xmlns:os="http://a9.com/-/spec/opensearch/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:yv="url"><atom:id>someid</atom:id><atom:link rel="self" type="application/atom+xml" href="request&startindex=1&amp;endindex=999"/><atom:title>search</atom:title><atom:updated>2015-04-17T13:22:36Z</atom:updated><atom:author><atom:name>name</atom:name><atom:uri>uri</atom:uri></atom:author><os:totalResults>2010</os:totalResults><os:startIndex>1</os:startIndex><os:itemsPerPage>999</os:itemsPerPage>

我想从它和其他类似的东西中提取一些东西,但我对JS中的xml解析不太熟悉。

你能发布一个这样的xml字符串示例吗?请发布更多的代码以提供更多的上下文。此外,您的数据应该是一个“对象”——它是javascript中最基本的形式。你有没有做些什么来深入研究这个问题?两种浏览器都能正确地找到totalResults吗?也许可以试着将它打印到javascript控制台并手动检查。嗨,对不起,我发布了代码和示例xml,感谢您的帮助:同样,当我在IE中运行相同的代码时,它会挂起ajax调用,甚至不会进行调用。我在网吧里根本找不到,有什么想法吗?