我有一个xml文件,我在我的html页面中导入了这样的文件:
<script type="text/xml" src="Categories.xml" id="categoriesXML">
</script>
使用我的jQuery代码我想读取这个xml文件并解析它用它的数据做一些事情,所以我试着写这样的东西:
var xml = $('#categoriesXML').text();
$(xml).find("Category").each(function () {
alert($(this).find("Title").text());
});
但我得到的是xml变量为空。
我也试着写下来:
var xml = $('#categoriesXML');
但我又无法让它发挥作用。
xml文件内容:
<?xml version="1.0" encoding="utf-8" ?>
<Categories>
<Category>
<Title>CAT1</Title>
<SubCategories>
<SubCategory>
<Title>SUB1</Title>
</SubCategory>
</SubCategories>
</Category>
</Categories>
那么如何以这种方式阅读这个xml文件,而不使用ajax ?
为什么我想要没有ajax:
因为我希望在页面加载时发生这种情况,并且在我的页面加载后不需要开始获取文件,这将在第一次加载时显示我的页面几乎为空,并且将等到文件的ajax响应可能非常大有些情况。
答案 0 :(得分:1)
我认为您需要使用AJAX加载XML 这是summary的方法
答案 1 :(得分:1)
我认为它不会那样工作,你应该通过ajax加载document.ready并开始处理它。
在document.ready
中进行ajax调用$(document).ready(function() {
// make ajax call and populate xml and process the xml.
});
答案 2 :(得分:1)
使用页面顶部的同步AJAX请求来填充JavaScript变量。它将模仿内联XML。
答案 3 :(得分:0)
我会编写一些服务器端代码来直接在页面上呈现xml内容,就像在此示例中一样:http://jsfiddle.net/Cq8Fu/并且它会起作用,因为使用外部文件它将无法工作并且作为@ Capsule在上面的评论中说,加载文件会有延迟,这种工作没用,也不会节省时间。
顺便说一下,这个样本我是从某人回答的答案中得到的,但他后来删除了他的答案“不知道为什么”。