我在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>
删除了敏感数据 - 我能够成功解析数据但不能检索一个元素 - 例如我正在寻找第一个公布日期
答案 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。