【问题标题】:Parsing part of a XML file with jQuery使用 jQuery 解析 XML 文件的一部分
【发布时间】:2013-02-14 16:50:44
【问题描述】:

从文本输入中接收到“天”后,如何使用 jQuery 仅从同一日期显示 <availabilities><product>?也许使用.siblings()

<?xml version='1.0' encoding='iso-8859-15'?>
<timetable>
  <date>
    <day>22-01-2013</day>
    <availabilities>
      <availability>
        <starttime>10:00</starttime>
        <endtime>13:00</endtime>
        <startplace>Funchal</startplace>
        <endplace>Funchal</endplace>
        <resource>Excursões na Madeira</resource>
        <idstartplace>18</idstartplace>
        <idendplace>18</idendplace>
        <idperiodoconsumo>13289</idperiodoconsumo>
        <idproduct>23</idproduct>
        <product>EXC_SANT</product>
        <idtimeperiod>11523</idtimeperiod>
        <idavailability>3561</idavailability>
      </availability>
      <availability>
        <starttime>10:00</starttime>
        <endtime>13:00</endtime>
        <startplace>Funchal</startplace>
        <endplace>Funchal</endplace>
        <resource>Excursões na Madeira</resource>
        <idstartplace>18</idstartplace>
        <idendplace>18</idendplace>
        <idperiodoconsumo>13290</idperiodoconsumo>
        <idproduct>33</idproduct>
        <product>foot</product>
        <idtimeperiod>11524</idtimeperiod>
        <idavailability>3593</idavailability>
      </availability>
      <availability>
        <starttime>10:00</starttime>
        <endtime>13:00</endtime>
        <startplace>Funchal</startplace>
        <endplace>Funchal</endplace>
        <resource>Excursões na Madeira</resource>
        <idstartplace>18</idstartplace>
        <idendplace>18</idendplace>
        <idperiodoconsumo>13289</idperiodoconsumo>
        <idproduct>22</idproduct>
        <product>VLT_ILHA</product>
        <idtimeperiod>11523</idtimeperiod>
        <idavailability>3561</idavailability>
      </availability>
    </availabilities>
  </date>
  <date>
      ...
      </date> 
...

这是我的成功:函数:

function parseStuff(data){
    $(data).find('date').each(function(){
        var day = $(this).find('day').text();

        if (day==decodeURI(iHash[3])){
            alert('Date matches!');
        }
    });
}

我很感激一些帮助,我不知道该怎么做.. :|

【问题讨论】:

    标签: javascript jquery xml xml-parsing


    【解决方案1】:

    试试这个:

    var product = $(this).find('product').text();
    

    我认为你必须把它放在这里:

    if (day==decodeURI(iHash[3])){
      var product = $(this).find('product').text();
      alert('Date matches!');
    }
    

    【讨论】:

    • 这将显示 XML 文件中的每个 &lt;product&gt;。我只想要那些父母是匹配日期的人 - 这是我的问题!
    • 您可以尝试将其置于匹配的 if 条件中
    • 我虽然只返回 1 个产品... facepalm 谢谢!
    • 我怎样才能找到,例如&lt;starttime&gt;,它是&lt;product&gt;的兄弟?
    • $(this).find('starttime').text(); 可能是这样,取决于你想在哪里阅读。
    【解决方案2】:

    这应该适合你:

    function parseStuff(data,toBeMatchedDate){
    
        productList=array();
    
        $(data).find('date').each(function(){
    
    
            var day = $(this).find('day').text();
    
            if (day==decodeURI(iHash[3]) && day==toBeMatchedDate)   //if date is matched
            {
    
                 xmlProdcutList=$(this).find('product'); //all the products associated with this date
    
    
                 $.each(function(i,thisProduct){
                             productList.push(thisProduct.text()); //store in the main array
                   });
    
    return productList;
    
    
            }
        });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-08
      • 2014-03-01
      • 1970-01-01
      • 2012-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多