处理XML文件的Javascript

处理XML文件的Javascript,javascript,ajax,jsp,Javascript,Ajax,Jsp,Javascript可以直接处理通过AJAX请求的xml文件。我有一个服务器端xml文件,需要用这个xml填充字段。我是否可以说“直接读取”xmlfile.xml(在服务器上),然后从收到的响应中提取javascript值,并根据需要填充?如果可能的话,你能举例说明吗?如果你能使用jQuery,你可以简单地执行一个命令,然后用静态文件响应 <script type="application/javascript"> $(function() { $('#get-xml

Javascript可以直接处理通过AJAX请求的xml文件。我有一个服务器端xml文件,需要用这个xml填充字段。我是否可以说“直接读取”xmlfile.xml(在服务器上),然后从收到的响应中提取javascript值,并根据需要填充?如果可能的话,你能举例说明吗?

如果你能使用jQuery,你可以简单地执行一个命令,然后用静态文件响应

 <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>

$(函数(){
$(“#获取xml a”)。单击(函数(){
$.ajax({
键入:“获取”,
url:“xmlfile.xml”,
数据类型:“xml”,
成功:函数(xml){
$(xml).find('label').each(function(){
//您的代码。下面是一些示例代码
var id_text=$(this.attr('id'))
var name_text=$(this).find('name').text()
$(“
  • ”) .html(name_text+'('+id_text+')) .appendTo('get xml ol'); }); } }); }); });
    小心点:

    注意:如果指定下面描述的数据类型选项,请确保服务器在响应中发送正确的MIME类型(例如xml作为“text/xml”)。发送错误的MIME类型可能会导致脚本出现意外问题


    如果您可以使用jQuery,那么只需执行一个命令,并使用静态文件进行响应

     <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>
    
    
    $(函数(){
    $(“#获取xml a”)。单击(函数(){
    $.ajax({
    键入:“获取”,
    url:“xmlfile.xml”,
    数据类型:“xml”,
    成功:函数(xml){
    $(xml).find('label').each(function(){
    //您的代码。下面是一些示例代码
    var id_text=$(this.attr('id'))
    var name_text=$(this).find('name').text()
    $(“
  • ”) .html(name_text+'('+id_text+')) .appendTo('get xml ol'); }); } }); }); });
    小心点:

    注意:如果指定下面描述的数据类型选项,请确保服务器在响应中发送正确的MIME类型(例如xml作为“text/xml”)。发送错误的MIME类型可能会导致脚本出现意外问题


    正如这里的标准一样,我将推荐使用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);
    

    正如这里的标准一样,我将推荐使用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);
    

    对。XMLHttpRequest有一个
    responseXML
    属性(在请求以常规方式完成后填充),它是对XML文档的引用。它具有HTML文档中常见的所有DOM方法和属性。您不需要50K的jQuery就可以实现这一点。

    是。XMLHttpRequest有一个
    responseXML
    属性(在请求以常规方式完成后填充),它是对XML文档的引用。它具有HTML文档中常见的所有DOM方法和属性。您不需要50K的jQuery就可以实现这一点。

    correct。。我刚才在这里看到的是正确的。。我刚才在这里看到了@Stefan:这可能会更容易,但开发者的便利性并不是唯一的考虑因素。这当然不是用户关心的事情。这也不是否决我的答案的理由。我否决了我认为值得考虑的答案,否决了我认为不值得考虑的答案。如果更多的人使用jQuery,那么当您链接到google的ajax代码repo时,将有更多的用户获得缓存命中率。此外,如果您正在处理大量数据,比如说过于冗长的xml文件,javascript就不是问题。您是否也不在您的网站上使用图像?任何大小合理的图片都将是jQuery库大小的4倍;不应使用图像,所有代码都应针对速度进行优化。gzip压缩、构建小型化和宽带的广泛采用使得这些担忧变得微不足道,甚至有害。是的,我认为试图支持IE6是错误的和落后的,是的,我相信jQuery(或其他库)应该消除过去的痛苦。我有合理的理由,但其余的我就不提了。如果你想反驳我的观点或进一步描述你的立场,写一篇博客,我会阅读和评论。证明我错了。这里有两个独立的论点:第一,站点是否应该支持IE6,对此我没有发表评论;第二,无论多么小的脚本任务是否应该使用jQuery或类似的工具。既然我们还没谈第一点,我就不谈了。至于第二点,你是主张在所有浏览器脚本任务中使用特定工具或工具类型的人,因此我认为举证责任在你身上。@Stefan:作为你最近两次评论中的第一次,我的回答完全正确。问题中没有要求使用jQuery,选择使用jQuery是您应该做出明智决定的事情。说jQuery是实现OP想要的唯一方法显然是错误的;说这是最好的方式是主观的,而不使用你的否决票所代表的jQuery就这样做是教条和狭隘的。关于图像大小的争论是不相关的,也是错误的:你所说的图像类型至少是76K,我认为这比合理的大小要大。@Stefan:这可能更容易,但开发人员的方便不是唯一的考虑因素。这当然不是用户关心的事情。这也不是否决我的答案的理由。我否决了我认为值得考虑的答案,否决了我认为不值得考虑的答案。如果更多的人使用jQuery,那么当您链接到google的ajax代码repo时,将有更多的用户获得缓存命中率。此外