【发布时间】:2009-09-15 13:06:36
【问题描述】:
Javascript 能否直接处理通过 AJAX 请求的 xml 文件。我有一个服务器端 xml 文件,需要从此 xml 填充字段。我可以说'直接读取“xmlfile.xml”(在服务器上)',然后从收到的响应中提取 javascript 中的值并根据需要填充吗?可以的话可以举例说明吗?
【问题讨论】:
标签: javascript ajax jsp
Javascript 能否直接处理通过 AJAX 请求的 xml 文件。我有一个服务器端 xml 文件,需要从此 xml 填充字段。我可以说'直接读取“xmlfile.xml”(在服务器上)',然后从收到的响应中提取 javascript 中的值并根据需要填充吗?可以的话可以举例说明吗?
【问题讨论】:
标签: javascript ajax jsp
如果你会使用 jQuery,你可以简单地执行一个XML AJAX call,然后用静态文件响应。
<script type="application/javascript">
$(function() {
$('#get-xml a').click(function() {
$.ajax({
type: "GET",
url: "xmlfile.xml",
dataType: "xml",
success: function(xml) {
$(xml).find('label').each(function(){
// your code. some example code bellow
var id_text = $(this).attr('id')
var name_text = $(this).find('name').text()
$('<li></li>')
.html(name_text + ' (' + id_text + ')')
.appendTo('#get-xml ol');
});
}
});
});
});
</script>
小心点:
注意:如果您指定下面描述的 dataType 选项,请确保服务器在响应中发送正确的 MIME 类型(例如,xml 作为“text/xml”)。发送错误的 MIME 类型可能会导致脚本出现意外问题。
【讨论】:
是的。 XMLHttpRequest 有一个responseXML 属性(以通常的方式完成请求后填充),它是对 XML 文档的引用。它具有您在 HTML 文档中获得的所有常用 DOM 方法和属性。你不需要 50K 的 jQuery 来实现这个。
【讨论】:
按照 SO 的标准,我建议使用 jQuery!
var myUrl = 'http://somesite.com/foo.xml';
function myXmlHandler(data){
// do stuff with data, which is the contents of foo.xml
}
$.get(myUrl,{},myXmlHandler);
【讨论】: