2011-02-10 2 views
0

Я разбор данные из моего XML, который выглядит следующим образом:JQuery не разбор вложенной XML правильно

<departuresData> 
<station> 
    <id>29411</id> 
    <name>Kúpalisko Matador</name> 
    <distance>182</distance> 
    <vehicle> 
    <number>180</number> 
    <time>10:26</time> 
    <time>10:56</time> 
    <target>Holíčska</target> 
    <lineid>289</lineid> 
    <type>BUS</type> 
    </vehicle> 
    <vehicle> 
    <number>180</number> 
    <time>10:17</time> 
    <time>10:47</time> 
    <target>Cintorín Petržalka</target> 
    <lineid>288</lineid> 
    <type>BUS</type> 
    </vehicle> 
</station> 
<station> 
    <id>30122</id> 
    <name>Kúpalisko Matador</name> 
    <distance>201</distance> 
    <vehicle> 
    <number>80</number> 
    <time>10:09</time> 
    <time>10:33</time> 
    <target>Kollárovo nám.</target> 
    <lineid>220</lineid> 
    <type>BUS</type> 
    </vehicle> 
    <vehicle> 
    <number>80</number> 
    <time>10:02</time> 
    <time>10:26</time> 
    <target>Kúpalisko Matador</target> 
    <lineid>222</lineid> 
    <type>BUS</type> 
    </vehicle> 
</station> 
<departuresData> 

и мой разборе JQuery выглядит следующим образом:

success: function(xml) { 
$(xml).find("station").each(function() 
    { 

    //vydolovanie hodnot 
    var name = $(this).find("name").text(); 
    var distance = $(this).find("distance").text(); 
    $("#response").append("Zastavka:" + name + "<br />Vzdialenost:" + distance + "<br />"); //vypis 

    $(this).find("vehicle").each(function(){ 

     var number = $(this).find("number").text(); 
     var target = $(this).find("target").text(); 
     var type = $(this).find("type").text(); 

      $("#response").append("Linka cislo: " + number + "<br />Smer: " + target + "<br />Druh: " + type + "<br />Časy:<br />"); 
     $(this).find("time").each(function() 
     { 
      $("#response").append($(this).text() + "<br />"); //vypis 
     }); 

     $("#response").append("1<br /><br />"); //vypis 

    }); 

    $("#response").append("<br />"); 
    }); 

}

но это только на расстоянии, и когда он должен заглянуть в каждую часть автомобиля по какой-то причине, он не может получить информацию, которая находится в количестве, времени и так далее. А также он не проходит через все теги транспортных средств в одном теге станции.

Выход выглядит следующим образом:

Zastavka:Kúpalisko Matador 
Vzdialenost:198 
Linka cislo: 
Smer: 
Druh: 
Časy: 

1 


Zastavka:Kúpalisko Matador 
Vzdialenost:201 
Linka cislo: 
Smer: 
Druh: 
Časy: 

1 
+0

Вы используете firebug в встроенных средствах разработки mozilla или chrome? Я знаю, что я не отвечаю на ваш вопрос напрямую, но у вас будет SOOO намного больше этих синтаксических/логических ошибок, которые вы должны просто пройти через свой код. В хром вы можете щелкнуть правой кнопкой мыши и «проверить элемент». На вкладке «Скрипты» вы можете просмотреть все js, включенные на странице, и установить контрольные точки в вашем коде. – Joe

+0

Благодарим вас за ответ. Джо, я просматриваю переменные scope chrome js, и похоже, что в тегах нет ничего, и то же самое в других. – Palo

+0

он нашел автомобиль? Я поставил точку останова внутри вашего var number = $ (this) .find ("number"). text(); это на самом деле удар по bp? – Joe

ответ

0

На самом деле, на приглядевшись, ваш первый выход:

Vzdialenost:198 

утверждает, что расстояние 198. Тем не менее, ваш XML не имеет расстояние 198 . Там в

<distance>182</distance> 

и

<distance>201</distance> 

так что либо вы вставили неправильный вопрос, либо на самом деле не читаете правильный xml.

Смежные вопросы