2015-03-25 3 views
0

Откровенно говоря, это, кажется, что это должно быть очень простая вещь, чтобы достигнуть однако все, что я пришел через просто не работает (возможно из-за моего ограниченного опыта)Использование JQuery для сортировки данных XML

Проблема : Я использую JQuery для синтаксического анализа строки в xml, после чего я показываю результаты в табло. Проблема в том, что я хочу проанализировать эту строку в xml и отсортировать данные с определенным заголовком.

Я должен подчеркнуть: Я не могу контролировать начальную переменную, я не могу ее редактировать, и я не могу использовать плагины. Это университетский проект, поэтому я вполне ограничен тем, что я могу изменить.

XML-данных, которые будут анализироваться и сортируют:

var xmlData = "<Scores>" + 
         "<Game><Player>Andy Symons</Player><Time>30</Time><Moves>4</Moves></Game>" + 
         "<Game><Player>Joe Bloggs</Player><Time>35</Time><Moves>4</Moves></Game>" + 
         "<Game><Player>Jane Bloggs</Player><Time>28</Time><Moves>6</Moves></Game>" + 
         "<Game><Player>Jane Bloggs</Player><Time>30</Time><Moves>8</Moves></Game>" + 
         "<Game><Player>Joe Bloggs</Player><Time>55</Time><Moves>6</Moves></Game>" + 
        "</Scores>"; 

Если кто имеет какие-либо идеи, как я могу разобрать эту строку, и заказать содержимое (желательно максимально гибко, как я должен быть в состоянии заказывать результаты с любого из заголовков)

Извините, если это не имеет смысла, я отредактирую по мере необходимости.

Заранее благодарен!

+0

проверьте это. http://stackoverflow.com/a/20025370/2979342 –

ответ

0

Строки XML можно рассматривать как узлы HTML с небольшим количеством скриптов, а затем их можно запросить с помощью jQuery или с помощью обычного JavaScript. Например, принимая то, что у вас есть, мы можем создать объект DOM из XML и запросить его для игровых фрагментов документа:

function getVal(game, field) { return game.querySelector(field).childNodes[0] } 

var dom = new DOMParser().parseFromString(xmlData, 'text/xml'); 
var games = dom.querySelectorAll('Game'); 

console.log(games); 
console.log(getVal(games[0], 'Player')); 

элементы из коллекции игр могут иметь поля запрошенные с функцией GETVAL, и вы можете сделать с ними, что вы хотите. Если вы можете получить данные, отправленные вам с помощью JSON, или если вы можете ссылаться на стороннюю библиотеку JavaScript, чтобы превратить XML в объекты JavaScript, это сделало бы это немного проще.

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