У меня проблемы с добавлением результатов моих xml-анализов в HTML-элементы правильно
Чего я пытаюсь достичь:
<li>Tutorial
<ul>
<li><a href="somelink">Tutorial 1</a></li>
<li><a href="somelink">Tutorial 2</a></li>
<li><a href="somelink">Tutorial 3</a></li>
<li><a href="somelink">Tutorial 4</a></li>
</ul>
</li>
<li>Simple
<ul>
<li><a href="somelink">Simple 1</a></li>
<li><a href="somelink">Simple 2</a></li>
<li><a href="somelink">Simple 3</a></li>
<li><a href="somelink">Simple 4</a></li>
</ul>
</li>
ЧтоВ настоящее время я получаю из своего кода:
<li>Tutorial
<ul>
<li><a href="somelink">Tutorial 1,Tutorial 2,Tutorial 3,Tutorial 4</a></li>
<li><a href="somelink">Simple 1,Simple 2,Simple 3,Simple 4</a></li>
<li><a href="somelink">More stuff from other arrays that should be seperate...</a></li>
</ul>
</li>
<li>Simple
<ul>
<li><a href="somelink">Simple 1,Simple 2,Simple 3,Simple 4</a></li>
<li><a href="somelink">More stuff from other arrays that should be seperate...</a></li>
</ul>
</li>
Код Jquery:
console.log("searching xml");
$(data).find("plist > dict > array > dict").each(function() {
var $board = $(this);
console.log($board);
//finds the title of each
var title = $board.find('string').eq(0).text();
//find the children of each dict
console.log("finding children");
var description = $board.find('array').contents('dict');
var desarray = new Array();
console.log("push to array");
desarray.push(description.find('string:eq(1)').textChildren({stringDelimiter: ','}).split(','));
console.log(description);
console.log(desarray);
//desarray contains all the arrays;
var html = '<li>' +'<a href="somelink">' + desarray + '</a>'+'</li>';
$("#list").append('<li>' + title + '<ul>');
console.log("appended to title");
$("#list li > ul").append(html);
console.log("appended to title list");
});
//refresh
$('#list').listview('refresh');
console.log("refreshed");
Поскольку я зацикливаюсь, я добавляю результаты в свой списоккогда я не хочуВ списке «Простой» вы можете видеть, что после добавления элементов «Учебное пособие» они не появляются в следующем наборе элементов ul.
Я застрял на том, что я должен сделать, чтобы добиться того, чего я хочу.Я знаю, что цикл вызывает проблему с несколькими добавлениями, и что мой массив, вероятно, должен быть как-то разделен, но я не знаю, как.
Как мне распечатать результаты каждого массива только один раз?Если я переместлю методы добавления вне цикла, я получу только окончательный результат в массиве.
Любая помощь приветствуется.
РЕДАКТИРОВАТЬ:
XML-файл в формате .plist.В первом цикле массив desarray заполняется Учебником 1, Учебником 2, Учебником 3, Учебником 4. Именно на этом этапе я хочу напечатать каждое значение индекса и вставить в элемент списка один раз .Вместо этого я снова зацикливаюсь и возвращаю Simple 1, Simple 2 и т. Д. И добавляю это к текущему массиву 'desarray', который затем печатает снова и вызывает проблему.
Пример формата XML, может включать полный файл, если не ясно:
<dict>
<!--<key>DisplayTutorial</key>
<string>Yes</string> -->
<key>Grid</key>
<string>...|...|...|</string>
<key>Name</key>
<string>Tutorial 1</string>
<key>ON</key>
<string>bar</string>
<key>Pieces</key>
<array>
<string>Y11110000</string>
<string>G11110000</string>
<string>P11110000</string>
</array>
<key>UniqueName</key>
<string>Tutorial/1.xml</string>
</dict><dict>
<key>Grid</key>
<string>....|OOOO|....|</string>
<key>Name</key>
<string>Tutorial 2</string>
<key>Pieces</key>
<array>
<string>G11110000</string>
<string>G11110000</string>
<string>P11110000</string>
<string>P11110000</string>
</array>
<key>UniqueName</key>
<string>Tutorial/3.xml</string>
</dict><dict>
<key>Grid</key>
<string>...|.X.|...|</string>
<key>Name</key>
<string>Tutorial 3</string>
<key>Pieces</key>
<array>
<string>G11110000</string>
<string>G11110000</string>
<string>P11110000</string>
<string>P11110000</string>
</array>
<key>UniqueName</key>
<string>Tutorial/4.xml</string>
</dict><dict>
<key>Grid</key>
<string>....|</string>
<key>Name</key>
<string>Tutorial 4</string>
<key>Pieces</key>
<array>
<string>G11111111</string>
<string>G00001111</string>
<string>P00001111</string>
<string>P11111111</string>
</array>
<key>UniqueName</key>
<string>Tutorial/5.xml</string>
</dict></array> </dict>