我已经尝试了几次,但在Internet Explorer 6,7或8中无效。在Firefox中运行。我正在做的是使用$ .ajax将数据插入到我的文档中。以下是我的代码:
//Example using jQuery
$(document).ready(function() {
$('li a.example').click(function(){
$.ajax({
type: "GET",
url: "news-stories.xml",
dataType: "xml",
success: function(xml) {
$(xml).find('news_story').each(function(){
var title = $(this).find('title').text();
var company = $(this).find('story_company').text();
var author = $(this).find('story_author').text();
$('<div class="items" id="link_'+author+'"></div>')
.html('<a href="'+company+'">'+title+'</a>')
.appendTo('#top-main-content');
/*$(this).find('desc').each(function(){
var brief = $(this).find('brief').text();
var long = $(this).find('long').text();
$('<div class="brief"></div>').html(brief).appendTo('#link_'+id);
$('<div class="long"></div>').html(long).appendTo('#link_'+id);
});*/
});
}
});
});
});
我正在尝试使用点击功能将此数据加载到#top-main-content中。谁能告诉我为什么这不起作用?
我正在将.xsl样式的.xml文档作为news-stories.xml加载到浏览器中,我在myt news-stories-style.xsl中声明了这个函数。请帮忙。
麦克
答案 0 :(得分:0)
此代码有效。我担心你的xml文件路径不正确。你能告诉我们什么是服务器响应代码吗?
此外我认为内部脚本标记<![CDATA[
不是必需的(但不确定,有人请确认)
嗨,我刚刚发现了更多相关信息。 jquery xml有问题而且总是不起作用。而且,如果文件在本地文件系统中,那么它总是在IE中不能正常工作,但是当文件在服务器中时它可以正常工作。
解决方案: 将xml转换为json然后使用它。有用的链接:http://fyneworks.com/jquery/xml-to-json/
答案 1 :(得分:0)
我遇到了这个问题 - 从jQuery中解析XML。决定我不需要jQuery来处理XML的东西。所以我只是将它加载到XMLDocument中,并使用常规XMLDOM methods以那种的方式参与其中。
function httpGet (location, cb) {
var xhr;
if (window.XMLHttpRequest) {
xhr=new XMLHttpRequest();
}
else if (window.ActiveXObject) {
xhr=new ActiveXObject("Microsoft.XMLHTTP");
}
xhr.onreadystatechange = function(event){
if (xhr.readyState == 4) {
if (xhr.status == 200) {
var text = xhr.responseText;
if (typeof cb == "function") { cb(text);}
}
}
};
xhr.open("GET",location,true);
xhr.send("");
}
function xmlDocFromText (text) {
var xmldoc;
if (window.DOMParser) {
var parser = new DOMParser();
xmldoc = parser.parseFromString(text,"text/xml");
}
else if (window.ActiveXObject) {
xmldoc = new ActiveXObject("Microsoft.XMLDOM");
xmldoc.loadXML(text);
}
return xmldoc;
}
$('li a.example').click(function(){
httpGet("news-stories.xml", function(text) {
var doc = xmlDocFromText(text);
// use XMLDOM methods here
var elts = doc.getElementsByTagName("news_story");
for (var i=0; i<elts.length; i++) {
var elt = elts[i];
var title = elt.getElementsByTagName('title')[0].text;
var author = elt.getElementsByTagName('story_author')[0].text;
...
}
});
});