jQuery解析xml不返回ie中的数据

时间:2010-02-16 11:45:41

标签: javascript jquery xml

我在ajax调用'get'xml文件后解析xml文件。我试图返回其中一个节点(使用find方法)。但它不会返回ie中的值 - 在firefox中很好。我正在做一个警报测试值,它只是空白。以下是代码:

function autoFeedGetter () {
 $('#notifyBox').empty();
  $.ajax ({
  type: "GET",
  url: "actual url removed",    
  datatype: "xml",
  success: checkNoteDate 
  }); 
  };
 // get time date saved to fullDateTime Variable 

 function checkNoteDate (xml) {
  var noteDate = 'Not';
  var lastSplit = 'Not'; 
  // get published date from feed
  noteDate = $(xml).find('entry published:eq(0)').text();    
  alert(noteDate);
}

问题似乎与此方法有关 - noteDate = $(xml).find('entry published:eq(0)').text();

但是我尝试了其他各种版本,包括: noteDate = $(xml).find('entry:first published')。text();

如果任何人有任何信息将非常感激。

示例xml

    <?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:ibmfs="http://purl.org/net/ibmfeedsvc/feedsvc/1.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  <title>Notifications</title>
  <link rel="alternate" href="http://www.#.com/notifyme" />
  <subtitle>This feed has been created using ROME (Java syndication utilities)</subtitle>
  <entry>
    <title>This is another test message !</title>

    <link rel="alternate" href="http://#/cwweb/" />
    <author>
      <name>ContentWatch</name>
    </author>
    <updated>2010-02-12T14:22:19Z</updated>
    <published>2010-02-12T14:22:19Z</published>
    <dc:creator>ContentWatch</dc:creator>

    <dc:date>2010-02-12T14:22:19Z</dc:date>
  </entry>
  <entry>
    <title>You got mail!</title>
    <link rel="alternate" href="http://#/cwweb/" />
    <author>
      <name>ContentWatch</name>

    </author>
    <updated>2010-02-10T12:11:49Z</updated>
    <published>2010-02-10T12:11:49Z</published>
    <dc:creator>ContentWatch</dc:creator>
    <dc:date>2010-02-10T12:11:49Z</dc:date>
  </entry>
</feed>

删除了敏感数据 - 我能够成功解析数据但不能检索一个元素 - 例如我正在寻找第一个公布日期

1 个答案:

答案 0 :(得分:0)

查看http://groups.google.com/group/jquery-en/browse_thread/thread/adb2b047f3761179?pli=1底部的andrea varnier的回复,看来IE无法使用从本地计算机加载的xml文件。如果您不希望在部署页面时依赖它,那么还有一个解决方案邮资:

success: function(xmlData){ 
var data; 
if ( typeof xmlData == 'string') { 
    data = new ActiveXObject( 'Microsoft.XMLDOM'); 
    data.async = false; 
    data.loadXML( xmlData); 
} else { 
    data = xmlData; 
}

因此看起来IE已将XML作为单个字符串保留,因此该方法将其加载到xml文档对象中。然后,您可以在该对象上使用jQuery。