Jquery: сопоставление узлов XML с элементами HTML ID
Никогда не бывает легко инкапсулировать то, что нужно сказать в названии... но вот мы и пришли...
Я понимаю, что, вероятно, вижу прямо мимо очевидного и, возможно, встроенную функцию JQuery.
То, что я пытаюсь сделать, это:
-
Иметь XML-файл (локально или через сервер), содержащий узлы, которые имеют свои имена узлов то есть как имена идентификаторов скажем текстового поля в HTML то есть
-
Я хочу, чтобы затем с помощью jQuery AJAX вызова, проанализировать XML и сопоставить значения узлы значение идентификатор HTML-элементов с одинаковым именем узла...
Я сразу понимаю, что есть а) вероятно Плагины, Б) возможно лучшие концепции, но мне нужно только сопоставить основные элементы HTML.. и на самом деле я мог бы технически иметь некоторые более продвинутые функции для заполнения, скажем, комбо-боксов, переключателей и т. д....
Просто какие-то идеи о пути, по которому нужно идти? или если есть простой плагин JQuery, чтобы сделать это?
P. S: Я не был в шаблонах как таковых, потому что даже хотя я понимаю силу, скажем, jTemplates, мне на самом деле не нужно ничего столь сложного/гибкого, как это...
Заранее спасибо!!
4 ответа:
Попробуйте это:
$.get ('/path/to/xml', function (data) { $(data).children ().each (function () { $('#' + this.nodeName).val ($(this).text()); }); })
Предполагает только 1 уровень вложенности в XML.
Это должно помочь вам начать разбор xml..
var xml = '<root><text1>i am in text1</text1><text2>i am in text2</text2></root>'; $(xml) .children() .each( function(){ alert(this.nodeName + ':' + $(this).text()); } );
NodeName-это имя тега в xml, которое вы будете использовать в качестве идентификатора для html .. метод jQuery text возвращает значение xml-узла .. (только текст)
Для загрузки xml-файла используйте
$.get( '/path/to/filename.xml', function(){ /*runs on success, do the parsing here*/ }, 'xml' );
На самом деле отличный вклад, спасибо ребятам за помощь.. это меня заводит.
Опять же, я понимаю, что есть шаблонные движки, но мой следующий шаг-построить немного больше сложности, чтобы иметь возможность сказать, заполнить поле со списком, переключатель и т. д.. только основы HTML.. потому что я использую компоненты DHTMLX , чтобы делать любые причудливые вещи.. в основном потому, что они, кажется, имеют самые простые для понимания виджеты javascript, которые я нашел.. Я знаю, что ExtJS догоняют лучшие docco, проще API и т.д..
Итак, вкратце, у меня будет:
- поля в базе данных с одинаковыми именами во всей моей системе.. так что если поле базы данных называется firstname, то HTML-элемент будет называться firstname
- в моем XML, который я создаю из базы данных, я добавлю атрибуты, такие как "Тип элемента" это будет текст, радио, комбо или что-то еще, так что я знаю, как заполнить значения.
- тогда javascript/JQuery может делать то, что ему нужно для отображения данные..
Основная причина всего этого заключается в том, что мой партнер может просто спроектировать страницу/макет как чистый HTML, не беспокоясь о XSLT/шаблонах... и данные простые заселяются...
Я уверен, что там должен быть какой-то "движок/плагин".. но пока я буду работать над этим...
Еще раз спасибо...