JQuery遍历XML。如何让它充满活力?

JQuery遍历XML。如何让它充满活力?,jquery,xml,Jquery,Xml,我有下面的JQuery代码,可以按照XML文件应有的方式解析XML文件。在它下面,您还可以找到它解析的XML文件。如您所见,根节点名为GetArchive,后面是另一个名为Y2012的节点 Y2012是一个年节点,它可能包含一年中的所有12个月。每个月可能包含许多条目,每个条目可能包含许多注释 我的问题是如何更改代码,这样我就不必像下面这样硬编码了?我怎样才能让我的代码检查存在多少年节点,并像我下面所做的那样解析每个节点 非常感谢你的帮助 $.get('getArchive.xml', null

我有下面的JQuery代码,可以按照XML文件应有的方式解析XML文件。在它下面,您还可以找到它解析的XML文件。如您所见,根节点名为GetArchive,后面是另一个名为Y2012的节点

Y2012是一个年节点,它可能包含一年中的所有12个月。每个月可能包含许多条目,每个条目可能包含许多注释

我的问题是如何更改代码,这样我就不必像下面这样硬编码了?我怎样才能让我的代码检查存在多少年节点,并像我下面所做的那样解析每个节点

非常感谢你的帮助

$.get('getArchive.xml', null, function (data) {

    // PARSE 2012 JANUARY NODES.

               var ul = $('<ul/>').fadeIn(1000).appendTo('#GetArchive');

       var JanEntries = $(data).find('GetArchive Y2012 Jan Entry').each( function(){

    var JanEntryId    = $(this).find("id").text();    ul.append('<li>' + JanEntryId    + '</li>');  
    var JanEntryDate  = $(this).find("date").text();  ul.append('<li>' + JanEntryDate  + '</li>');   
    var JanEntryTime  = $(this).find("time").text();  ul.append('<li>' + JanEntryTime  + '</li>');  
    var JanEntrytitle = $(this).find("title").text(); ul.append('<li>' + JanEntrytitle + '</li>');  
    var JanEntryBody  = $(this).find("body").text();  ul.append('<li>' + JanEntryBody  + '</li>');  

    $(this).find("Comment").each(function () { 
    var CommentId     = $(this).find("cid").text();   ul.append('<li>' + CommentId   + '</li>');
    var CommentDate   = $(this).find("cdate").text(); ul.append('<li>' + CommentDate + '</li>');
    var CommentTime   = $(this).find("ctime").text(); ul.append('<li>' + CommentTime + '</li>');
    var CommentFrom   = $(this).find("cfrom").text(); ul.append('<li>' + CommentFrom + '</li>');
    var CommentBody   = $(this).find("cbody").text(); ul.append('<li>' + CommentBody + '</li>');  
    });  

});

    // PARSE 2012 FEBRUARY NODES.

               var ul = $('<ul/>').fadeIn(1000).appendTo('#GetArchive');

       var JanEntries = $(data).find('GetArchive Y2012 Feb Entry').each( function(){

    var FebEntryId    = $(this).find("id").text();    ul.append('<li>' + FebEntryId    + '</li>');  
    var FebEntryDate  = $(this).find("date").text();  ul.append('<li>' + FebEntryDate  + '</li>');   
    var FebEntryTime  = $(this).find("time").text();  ul.append('<li>' + FebEntryTime  + '</li>');  
    var FebEntrytitle = $(this).find("title").text(); ul.append('<li>' + FebEntrytitle + '</li>');  
    var FebEntryBody  = $(this).find("body").text();  ul.append('<li>' + FebEntryBody  + '</li>');  

    $(this).find("Comment").each(function () { 
    var CommentId     = $(this).find("cid").text();   ul.append('<li>' + CommentId   + '</li>');
    var CommentDate   = $(this).find("cdate").text(); ul.append('<li>' + CommentDate + '</li>');
    var CommentTime   = $(this).find("ctime").text(); ul.append('<li>' + CommentTime + '</li>');
    var CommentFrom   = $(this).find("cfrom").text(); ul.append('<li>' + CommentFrom + '</li>');
    var CommentBody   = $(this).find("cbody").text(); ul.append('<li>' + CommentBody + '</li>');  
    });  

});

    // PARSE 2011 JANUARY NODES.

               var ul = $('<ul/>').fadeIn(1000).appendTo('#GetArchive');

       var JanEntries = $(data).find('GetArchive Y2011 Jan Entry').each( function(){

    var JanEntryId    = $(this).find("id").text();    ul.append('<li>' + JanEntryId    + '</li>');  
    var JanEntryDate  = $(this).find("date").text();  ul.append('<li>' + JanEntryDate  + '</li>');   
    var JanEntryTime  = $(this).find("time").text();  ul.append('<li>' + JanEntryTime  + '</li>');  
    var JanEntrytitle = $(this).find("title").text(); ul.append('<li>' + JanEntrytitle + '</li>');  
    var JanEntryBody  = $(this).find("body").text();  ul.append('<li>' + JanEntryBody  + '</li>');  

    $(this).find("Comment").each(function () { 
    var CommentId     = $(this).find("cid").text();   ul.append('<li>' + CommentId   + '</li>');
    var CommentDate   = $(this).find("cdate").text(); ul.append('<li>' + CommentDate + '</li>');
    var CommentTime   = $(this).find("ctime").text(); ul.append('<li>' + CommentTime + '</li>');
    var CommentFrom   = $(this).find("cfrom").text(); ul.append('<li>' + CommentFrom + '</li>');
    var CommentBody   = $(this).find("cbody").text(); ul.append('<li>' + CommentBody + '</li>');  
    });  

});

    // PARSE 2011 FEBRUARY NODES.

               var ul = $('<ul/>').fadeIn(1000).appendTo('#GetArchive');

       var JanEntries = $(data).find('GetArchive Y2011 Feb Entry').each( function(){

    var FebEntryId    = $(this).find("id").text();    ul.append('<li>' + FebEntryId    + '</li>');  
    var FebEntryDate  = $(this).find("date").text();  ul.append('<li>' + FebEntryDate  + '</li>');   
    var FebEntryTime  = $(this).find("time").text();  ul.append('<li>' + FebEntryTime  + '</li>');  
    var FebEntrytitle = $(this).find("title").text(); ul.append('<li>' + FebEntrytitle + '</li>');  
    var FebEntryBody  = $(this).find("body").text();  ul.append('<li>' + FebEntryBody  + '</li>');  

    $(this).find("Comment").each(function () { 
    var CommentId     = $(this).find("cid").text();   ul.append('<li>' + CommentId   + '</li>');
    var CommentDate   = $(this).find("cdate").text(); ul.append('<li>' + CommentDate + '</li>');
    var CommentTime   = $(this).find("ctime").text(); ul.append('<li>' + CommentTime + '</li>');
    var CommentFrom   = $(this).find("cfrom").text(); ul.append('<li>' + CommentFrom + '</li>');
    var CommentBody   = $(this).find("cbody").text(); ul.append('<li>' + CommentBody + '</li>');  
    });  

});    

}, 'xml');
$.get('getArchive.xml',null,函数(数据){
//解析2012年1月节点。
var ul=$(“
    ”).fadeIn(1000).appendTo(“#GetArchive”); var JanEntries=$(数据).find('GetArchive Y2012 Jan Entry')。每个(函数(){ var JanEntryId=$(this.find(“id”).text();ul.append(“
  • ”+JanEntryId+”
  • ); var JanEntryDate=$(this.find(“date”).text();ul.append(“
  • ”+JanEntryDate+”
  • ); var JanEntryTime=$(this.find(“time”).text();ul.append(“
  • ”+JanEntryTime+”
  • ); var janentrytle=$(this.find(“title”).text();ul.append(“
  • ”+janentrytle+”
  • ); var JanEntryBody=$(this.find(“body”).text();ul.append(“
  • ”+JanEntryBody+”
  • ); $(this.find(“Comment”).each(函数(){ var CommentId=$(this.find(“cid”).text();ul.append(“
  • ”+CommentId+”
  • ); var CommentDate=$(this.find(“cdate”).text();ul.append(“
  • ”+CommentDate+”
  • ”); var CommentTime=$(this.find(“ctime”).text();ul.append(“
  • ”+CommentTime+”
  • ”); var CommentFrom=$(this.find(“cfrom”).text();ul.append(“
  • ”+CommentFrom+”
  • ); var CommentBody=$(this.find(“cbody”).text();ul.append(“
  • ”+CommentBody+”
  • ); }); }); //解析2012年2月的节点。 var ul=$(“
      ”).fadeIn(1000).appendTo(“#GetArchive”); var JanEntries=$(数据).find('GetArchive Y2012 Feb Entry')。每个(函数(){ var FebEntryId=$(this.find(“id”).text();ul.append(“
    • ”+FebEntryId+”
    • ); var FebEntryDate=$(this.find(“date”).text();ul.append(“
    • ”+FebEntryDate+”
    • ); var FebEntryTime=$(this.find(“time”).text();ul.append(“
    • ”+FebEntryTime+”
    • ); var FebEntrytitle=$(this.find(“title”).text();ul.append(“
    • ”+FebEntrytitle+”
    • ); var FebEntryBody=$(this.find(“body”).text();ul.append(“
    • ”+FebEntryBody+”
    • ); $(this.find(“Comment”).each(函数(){ var CommentId=$(this.find(“cid”).text();ul.append(“
    • ”+CommentId+”
    • ); var CommentDate=$(this.find(“cdate”).text();ul.append(“
    • ”+CommentDate+”
    • ”); var CommentTime=$(this.find(“ctime”).text();ul.append(“
    • ”+CommentTime+”
    • ”); var CommentFrom=$(this.find(“cfrom”).text();ul.append(“
    • ”+CommentFrom+”
    • ); var CommentBody=$(this.find(“cbody”).text();ul.append(“
    • ”+CommentBody+”
    • ); }); }); //解析2011年1月节点。 var ul=$(“
        ”).fadeIn(1000).appendTo(“#GetArchive”); var JanEntries=$(数据).find('GetArchive Y2011 Jan Entry')。每个(函数(){ var JanEntryId=$(this.find(“id”).text();ul.append(“
      • ”+JanEntryId+”
      • ); var JanEntryDate=$(this.find(“date”).text();ul.append(“
      • ”+JanEntryDate+”
      • ); var JanEntryTime=$(this.find(“time”).text();ul.append(“
      • ”+JanEntryTime+”
      • ); var janentrytle=$(this.find(“title”).text();ul.append(“
      • ”+janentrytle+”
      • ); var JanEntryBody=$(this.find(“body”).text();ul.append(“
      • ”+JanEntryBody+”
      • ); $(this.find(“Comment”).each(函数(){ var CommentId=$(this.find(“cid”).text();ul.append(“
      • ”+CommentId+”
      • ); var CommentDate=$(this.find(“cdate”).text();ul.append(“
      • ”+CommentDate+”
      • ”); var CommentTime=$(this.find(“ctime”).text();ul.append(“
      • ”+CommentTime+”
      • ”); var CommentFrom=$(this.find(“cfrom”).text();ul.append(“
      • ”+CommentFrom+”
      • ); var CommentBody=$(this.find(“cbody”).text();ul.append(“
      • ”+CommentBody+”
      • ); }); }); //解析2011年2月的节点。 var ul=$(“
          ”).fadeIn(1000).appendTo(“#GetArchive”); var JanEntries=$(数据).find('GetArchive Y2011 Feb Entry')。每个(函数(){ var FebEntryId=$(this.find(“id”).text();ul.append(“
        • ”+FebEntryId+”
        • ); var FebEntryDate=$(this.find(“date”).text();ul.append(“
        • ”+FebEntryDate+”
        • ); var FebEntryTime=$(this.find(“time”).text();ul.append(“
        • ”+FebEntryTime+”
        • ); var FebEntrytitle=$(this.find(“title”).text();ul.append(“
        • ”+FebEntrytitle+”
        • ); var FebEntryBody=$(this.find(“body”).text();ul.append(“
        • ”+FebEntryBody+”
        • ); $(this.find(“Comment”).each(函数(){ var CommentId=$(this.find(“cid”).text();ul.append(“
        • ”+CommentId+”
        • ); var CommentDate=$(this.find(“cdate”).text();ul.append(“
        • ”+CommentDate+”
        • ”); var CommentTime=$(this.find(“ctime”).text();ul.append(“
        • ”+CommentTime+”
        • ”); var CommentFrom=$(this.find(“cfrom”).text();ul.append(“
        • ”+CommentFrom+”
        • ); var CommentBody=$(this.find(“cbody”).text();ul.append(“
        • ”+CommentBody+”
        • ); }); }); }“xml”);
这是它解析的XML文件

<?xml version="1.0" encoding="utf-8"?>
<GetArchive>
  <Y2012>
    <Jan>
      <Entry>
        <id>&lt;b&gt;Jan Entry ID 1&lt;/b&gt;</id>
        <date>entry date</date>
        <time>entry time</time>
        <title>entry title</title>
        <body>entry &lt;b&gt;body&lt;/b&gt;! html friendly</body>
        <Comments>
          <Comment>
            <cid>Jan Comment ID 1</cid>
            <cdate>comment date</cdate>
            <ctime>comment time</ctime>
            <cfrom>comment from</cfrom>
            <cbody>comment body! text only</cbody>
          </Comment>
          <Comment>
            <cid>Jan Comment ID 2</cid>
            <cdate>comment date</cdate>
            <ctime>comment time</ctime>
            <cfrom>comment from</cfrom>
            <cbody>comment body! text only</cbody>
          </Comment>
        </Comments>
      </Entry>
      <Entry>
        <id>&lt;b&gt;Jan Entry ID 2&lt;/b&gt;</id>
        <date>entry date</date>
        <time>entry time</time>
        <title>entry title</title>
        <body>entry &lt;b&gt;body&lt;/b&gt;! html friendly</body>
        <Comments>
          <Comment>
            <cid>Jan Comment ID 3</cid>
            <cdate>comment date</cdate>
            <ctime>comment time</ctime>
            <cfrom>comment from</cfrom>
            <cbody>comment body! text only</cbody>
          </Comment>
          <Comment>
            <cid>Jan Comment ID 4</cid>
            <cdate>comment date</cdate>
            <ctime>comment time</ctime>
            <cfrom>comment from</cfrom>
            <cbody>comment body! text only</cbody>
          </Comment>
        </Comments>
      </Entry>
    </Jan>
    <Feb>
      <Entry>
        <id>&lt;b&gt;Feb Entry ID 1&lt;/b&gt;</id>
        <date>entry date</date>
        <time>entry time</time>
        <title>entry title</title>
        <body>entry &lt;b&gt;body&lt;/b&gt;! html friendly</body>
        <Comments>
          <Comment>
            <cid>Feb Comment ID 1</cid>
            <cdate>comment date</cdate>
            <ctime>comment time</ctime>
            <cfrom>comment from</cfrom>
            <cbody>comment body! text only</cbody>
          </Comment>
          <Comment>
            <cid>Feb Comment ID 2</cid>
            <cdate>comment date</cdate>
            <ctime>comment time</ctime>
            <cfrom>comment from</cfrom>
            <cbody>comment body! text only</cbody>
          </Comment>
        </Comments>
      </Entry>
      <Entry>
        <id>&lt;b&gt;Feb Entry ID 2&lt;/b&gt;</id>
        <date>entry date</date>
        <time>entry time</time>
        <title>entry title</title>
        <body>entry &lt;b&gt;body&lt;/b&gt;! html friendly</body>
        <Comments>
          <Comment>
            <cid>Feb Comment ID 3</cid>
            <cdate>comment date</cdate>
            <ctime>comment time</ctime>
            <cfrom>comment from</cfrom>
            <cbody>comment body! text only</cbody>
          </Comment>
          <Comment>
            <cid>Feb Comment ID 4</cid>
            <cdate>comment date</cdate>
            <ctime>comment time</ctime>
            <cfrom>comment from</cfrom>
            <cbody>comment body! text only</cbody>
          </Comment>
        </Comments>
      </Entry>
    </Feb>
  </Y2012>
  <Y2011>
    <Jan>
      <Entry>
        <id>&lt;b&gt;Jan Entry ID 1&lt;/b&gt;</id>
        <date>entry date</date>
        <time>entry time</time>
        <title>entry title</title>
        <body>entry &lt;b&gt;body&lt;/b&gt;! html friendly</body>
        <Comments>
          <Comment>
            <cid>Jan Comment ID 1</cid>
            <cdate>comment date</cdate>
            <ctime>comment time</ctime>
            <cfrom>comment from</cfrom>
            <cbody>comment body! text only</cbody>
          </Comment>
          <Comment>
            <cid>Jan Comment ID 2</cid>
            <cdate>comment date</cdate>
            <ctime>comment time</ctime>
            <cfrom>comment from</cfrom>
            <cbody>comment body! text only</cbody>
          </Comment>
        </Comments>
      </Entry>
      <Entry>
        <id>&lt;b&gt;Jan Entry ID 2&lt;/b&gt;</id>
        <date>entry date</date>
        <time>entry time</time>
        <title>entry title</title>
        <body>entry &lt;b&gt;body&lt;/b&gt;! html friendly</body>
        <Comments>
          <Comment>
            <cid>Jan Comment ID 3</cid>
            <cdate>comment date</cdate>
            <ctime>comment time</ctime>
            <cfrom>comment from</cfrom>
            <cbody>comment body! text only</cbody>
          </Comment>
          <Comment>
            <cid>Jan Comment ID 4</cid>
            <cdate>comment date</cdate>
            <ctime>comment time</ctime>
            <cfrom>comment from</cfrom>
            <cbody>comment body! text only</cbody>
          </Comment>
        </Comments>
      </Entry>
    </Jan>
    <Feb>
      <Entry>
        <id>&lt;b&gt;Feb Entry ID 1&lt;/b&gt;</id>
        <date>entry date</date>
        <time>entry time</time>
        <title>entry title</title>
        <body>entry &lt;b&gt;body&lt;/b&gt;! html friendly</body>
        <Comments>
          <Comment>
            <cid>Feb Comment ID 1</cid>
            <cdate>comment date</cdate>
            <ctime>comment time</ctime>
            <cfrom>comment from</cfrom>
            <cbody>comment body! text only</cbody>
          </Comment>
          <Comment>
            <cid>Feb Comment ID 2</cid>
            <cdate>comment date</cdate>
            <ctime>comment time</ctime>
            <cfrom>comment from</cfrom>
            <cbody>comment body! text only</cbody>
          </Comment>
        </Comments>
      </Entry>
      <Entry>
        <id>&lt;b&gt;Feb Entry ID 2&lt;/b&gt;</id>
        <date>entry date</date>
        <time>entry time</time>
        <title>entry title</title>
        <body>entry &lt;b&gt;body&lt;/b&gt;! html friendly</body>
        <Comments>
          <Comment>
            <cid>Feb Comment ID 3</cid>
            <cdate>comment date</cdate>
            <ctime>comment time</ctime>
            <cfrom>comment from</cfrom>
            <cbody>comment body! text only</cbody>
          </Comment>
          <Comment>
            <cid>Feb Comment ID 4</cid>
            <cdate>comment date</cdate>
            <ctime>comment time</ctime>
            <cfrom>comment from</cfrom>
            <cbody>comment body! text only</cbody>
          </Comment>
        </Comments>
      </Entry>
    </Feb>
  </Y2011>
</GetArchive>

b条目ID 1/b
参赛日期
进场时间
参赛作品名称
进入b正文/b!html友好
Jan评论ID 1
通信
$(data).find('Year').each(function() {
    $(this).find('Month').each(function() {
        $(this).find('Entry').each(function() {
            // append id, date, time, title, body
            $(this).find('Comment').each(function() {
                // append comment id, date, time, from, body
            });
        });
    });
});