Обработка и вывод информации из XML
Всем доброго времени суток.
Я в этом вообще бом бом бом, так что сильно не пинайте. :) Есть XML файл взятый при помощи API (uCoz), т.е. адрес получается http://адрес_сайта/api/load/, без file.xml Но это не проблема, создать отдельный файл не долго. Задача состоит в том, что бы посредством только JS без PHP вытащить из этого файла Текстовое поле (Название материала) и ссылку на материал (в XML файле они присутствуют, логично, ага!?) и вставить их в HTML форму. Задумка такая: поисковые подсказки как в яндексе (например), т.е. JS+Ajax вытаскивают инфу из XML, сравнивают с введёнными с форму значениями и ниже в div выводят похожие (примерное продолжение). Например ввёл в форму слово "Самый" и мне ниже появилась подсказка типа "Самый страшный фильм", "Самый лучший фильм" и т.д. и т.п. Можно не обязательно всё, достаточно направить на путь истинный так сказать, а именно, просто показать как вытаскиваются эти значения и выводятся в div, сравнение я и сам смогу прикрутить (наверно :lol: ) Если конечно такое вообще возможно без использования PHP. |
WaMpIr,
Если используете jQuery - то простой пример, как обработать xml. Для подсказок как в поиске, есть плагин jquery.autocomplete. |
WaMpIr,
Выложите или дайте ссылку на контент файла |
Deff, вот только часть кода, потому что он очень длинный. Где TITLE есть название материала, а ENTRY_URL ссылка на материал, больше ничего не нужно. Ну и на всякий случай статейка непосредственно от uCoz'а с описанием значений.
<methodResponse> <params> <param> <value> <array> <data> <value> <struct> <member> <name> MATERIAL_ID </name> <value> <i4> 14 </i4> </value> </member> <member> <name> TITLE </name> <value> <string> Postal 3 </string> </value> </member> <member> <name> MESSAGE </name> <value> <string> Безымянный долботряс, известный как Чувак, взорвав атомной бомбой аризонский городок Парадайз, перебирается на ПМЖ в аналогичную дыру с интригующим названием Катарсис. </string> </value> </member> <member> <name> ENTRY_URL </name> <value> <string> http://rkwo.ucoz.ru/load/18/igry/postal_3/54-1-0-14 </string> </value> </member> |
Цитата:
[HTML hide][/html] |
<script src="http://code.jquery.com/jquery-latest.js"></script> <object id=textXML style="display:none;"> <methodResponse> <params> <param> <value> <array> <data> <value> <struct> <member> <name> MATERIAL_ID </name> <value> <i4> 14 </i4> </value> </member> <member> <name> TITLE </name> <value> <string> Postal 3 </string> </value> </member> <member> <name> MESSAGE </name> <value> <string> Безымянный долботряс, известный как Чувак, взорвав атомной бомбой аризонский городок Парадайз, перебирается на ПМЖ в аналогичную дыру с интригующим названием Катарсис. </string> </value> </member> <member> <name> ENTRY_URL </name> <value> <string> http://rkwo.ucoz.ru/load/18/igry/postal_3/54-1-0-14 </string> </value> </member> </object> <script type="text/javascript"> var Text='' $(document).ready(function(){ $("#textXML string").each(function(i){ if(i==1) {Text=$(this).text();return false;} }); alert(Text) }); </script> |
Hoshinokoe, первая ссылка это конечно хорошо, я бы даже сказал то, что надо, вот только структура xml файла слегка отличается.
|
Deff, спасибо, но это опять же немножко не то. Скрипт непонятно каким образом берёт это значение, а нужно чтобы брал значения для string только из member, значения name которых равно TITLE и ENTRY_URL.
|
Цитата:
|
В итоге должен получиться div блок со множеством всех значений TITLE, тобишь название материала. Сейчас подумал, оказывается ссылка там и не нужна, нужно просто название материала. Ещё одна мини проблема в том, что этот файл является динамическим, периодически, по мере добавления материала, в нём добавляются соответствующие пункты, но это можно исправить при помощи ajax(надеюсь). Сейчас самое главное выцепить эти значения из файла и вставить в виде списка или ещё как-нибудь.
|
Часовой пояс GMT +3, время: 15:21. |