Справка по формату JQuery XML Parser
Мне нужна техническая экспертиза для того, чтобы отформатировать XML и визуализировать в формате HTML ниже. Я использую анализатор XML JQuery, и мне нужна помощь в создании HTML-части в одиночку.
data.xml
<xml>
<rs:data>
<z:row Category="Sales " URLMenu="http://www.abc.com, Sales.com" />
<z:row Category="Products" URLMenu="http://www.google.com, Products.com" />
<z:row Category="Sales "URLMenu="http://www.abc.com/services, Services.com" />
<z:row Category="Products" URLMenu="http://www.citigroup.net, Financial.com" />
<z:row Category="Products" SubCategory="International" URLMenu="http://www.google.com, United States" />
<z:row Category="Products" SubCategory="International" URLMenu="http://www.googe.com, Australia" />
</rs:data></xml>
Функция JQuery
<script type="text/javascript">
$(document).ready(function () {
var thisHtml = '';
var url = 'xml/Data.xml';
$.get(url, function (d) {
$(d).find('z\\:row').each(function () {
thisHtml += '<ul>';
{
thisHtml += '<li><a href="">' + $(this).attr("Category") + '</a></li>';
}
thisHtml += '</ul>';
}); $('bd').append($(thisHtml));
});
});
</script>
Ниже приведен HTML-фрагмент, который необходимо создать динамически.
<ul>
<li>Sales
<ul>
<li><a>Sales.com</a></li>
<li><a>Products.com</a></li>
</ul>
</li>
<li>Products
<ul>
<li><a>Services.com</a></li>
<li><a>Financial.com</a></li>
<li>International
<ul>
<li><a>United States</a></li>
<li><a>Australia</a></li>
</ul>
</li>
</ul>
</li>
Требуемый html группирует все категории под тем же именем и URLMenu, перечисленными как отдельные. Поскольку я новичок в JQuery, не могли бы вы помочь мне в цикле и рендеринге?
Спасибо
1 ответ
Если у вас есть фиксированный набор категорий, вы можете использовать следующий селектор для каждого блока и отображать элементы последовательно:
$(d).find('z\\:row[Category="Sales"]').each(...);
$(d).find('z\\:row[Category="Products"]').each(...);
В противном случае, я думаю, вам нужно будет дважды просмотреть данные, чтобы сгруппировать данные по категориям в первом прогоне и распечатать сгруппированные данные во втором.
Вы также можете рассмотреть возможность использования плагина шаблонов для рендеринга HTML, такого как этот: http://api.jquery.com/tmpl/