2011-12-28 3 views
1

Я пытаюсь создать таблицу, проанализировав XML-файл с помощью jquery. Файл XML выглядит следующим образом ...JQuery Разбор XML-файла выводит пустую таблицу

<?xml version='1.0' encoding='UTF-16'?> 
<E1TC NAME='R584211WXB' VERSION='a'> 
<TextLine1> 
    <1>2011/11/06</1> 
    <2>5748283</2> 
    <3>10.9300</3> 
    <4>4049027</4> 
    <5>7.7000</5> 
    <6>42799422</6> 
    <7>81.3800</7> 
    <8>52596733</8> 
</TextLine1> 
<TextLine1> 
... 
</TextLine1> 
</E1TC> 

Моя функция JQuery выглядит следующим образом

 // Build an HTML string 
     myHTMLOutput = ''; 
     myHTMLOutput += '<table width="98%" border="1" cellpadding="0" cellspacing="0">'; 
     myHTMLOutput += '<th>1</th><th>2</th><th>3</th><th>4</th><th>5</th><th>6</th><th>7</th><th>8</th>'; 

     // Run the function for each TextLine1 tag in the XML file 
     $('TextLine1',xml).each(function(i) 
     { 
      d1 = $(this).find("1").text(); 
      d2 = $(this).find("2").text(); 
      d3 = $(this).find("3").text(); 
      d4 = $(this).find("4").text(); 
      d5 = $(this).find("5").text(); 
      d6 = $(this).find("6").text(); 
      d7 = $(this).find("7").text(); 
      d8 = $(this).find("8").text(); 
      d1Post = $(this).find("1").attr("post"); 

      // Build row HTML data and store in string 
      mydata = BuildStudentHTML(d1,d2,d3,d4,d5,d6,d7,d8,d1Post); 
      myHTMLOutput = myHTMLOutput + mydata; 
     }); 
     myHTMLOutput += '</table>'; 

выход производит пустую таблицу с заголовками 1, 2, 3, .., 8. I не удается найти мою ошибку. Я знаю, что этот код работает, потому что это был пример от http://www.compoc.com/tuts/. Когда я модифицировал его для работы с моим XML-документом, что-то сломалось. Похоже, что-то не так с линией

$('TextLine1',xml).each(function(i) 

Любые идеи о том, как исправить это? Это мой первый опыт работы с jquery ...

+0

Если Я прикрепляю ** предупреждение («этот код работает»); ** после строки ** $ ('TextLine1', xml) .each (function (i) {** Я не получаю выход. перед этой строкой я увижу вывод. – whittin36

ответ

1

Похоже, что ваш XML недопустим. Проблема заключается в том, что вы называете теги числами. Если я изменить XML, чтобы выглядеть следующим образом, то он работает отлично:

<?xml version='1.0' encoding='UTF-16'?> 
<E1TC NAME='R584211WXB' VERSION='a'> 
<TextLine1> 
    <a>2011/11/06</a> 
    <b>5748283</b> 
    <c>10.9300</c> 
    <d>4049027</d> 
    <e>7.7000</e> 
    <f>42799422</f> 
    <g>81.3800</g> 
    <h>52596733</h> 
</TextLine1> 
</E1TC> 

Я использовал этот сайт, чтобы подтвердить свой XML: http://xmlgrid.net/

Вот демо выше XML: http://jsfiddle.net/cHA4D/

+0

Спасибо за отличный ресурс и ответ! – whittin36