Модераторы: diadiavova
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Посоветуйте, чем лучше парсить XML в данном случае 
V
    Опции темы
Innuendo108
Дата 29.1.2010, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 143
Регистрация: 3.4.2008

Репутация: нет
Всего: 2



Доброго времени суток.

Есть веб-страница на сервере. И есть много .xml файлов.

Пользователь на странице выбирает нужный файл, и его содержимое (обработанное) должно отобразиться на странице.

Подскажите, какими средствами можно парсить xml через JavaScript. Есть какие-то библиотеки?

Так же, как открыть этот файл? т.е. как загрузить xml структуру из xml файла?
PM MAIL   Вверх
diadiavova
Дата 29.1.2010, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 22
Всего: 142



В смысле xml надо обрабатывать в браузере?


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Innuendo108
Дата 29.1.2010, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 143
Регистрация: 3.4.2008

Репутация: нет
Всего: 2



Ну обрабатывать, т.е. допустим заполнить табличку определенную, вытащив нужное содержимое тегов XML
PM MAIL   Вверх
LSD
Дата 29.1.2010, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 8
Всего: 538



А может лучше применить XSLT сразу по XML сгенерировать HTML?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Innuendo108
Дата 29.1.2010, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 143
Регистрация: 3.4.2008

Репутация: нет
Всего: 2



А вот я на w3school вот такое нашел.
Вот такой пример:

имеем файл note.xml
Код

<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Uncle</to>
<from>Adam</from>
<body>I'll Bring the beers... I'll bring the beers</body>
</note>


и такой html файлик: (xml.html)
Код

<html>
<body>
<h1>W3Schools Internal Note</h1>
<p><b>To:</b> <span id="to"></span><br />
<b>From:</b> <span id="from"></span><br />
<b>Message:</b> <span id="message"></span>

<script type="text/javascript">
if (window.XMLHttpRequest)
  {
  xhttp=new XMLHttpRequest()
  }
else
  {
  xhttp=new ActiveXObject("Microsoft.XMLHTTP")
  }
xhttp.open("GET","note.xml",false);
xhttp.send("");
xmlDoc=xhttp.responseXML;

document.getElementById("to").innerHTML=xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;
document.getElementById("from").innerHTML=xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;
document.getElementById("message").innerHTML=xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;
</script>

</body>
</html>


Вот мне нравится такой метод.. я через DOM в javascript вытягиваю все значения и атрибуты тегов...

Но рационален ли такой метод? Просто вот я когда запускаю этот xml.html, то он прально всё отображает, но вот курсор мыши долго находится в состоянии "песочные часы"... Это так тормозит DOM или что-то у меня не так в системе?

P.S. Это глюк на форуме, или что-то я не так делаю - какой бы я code= не указывал (html или javascript) - он делает без подсветки, как code=xml - такое же делает.

Это сообщение отредактировал(а) Innuendo108 - 29.1.2010, 15:57
PM MAIL   Вверх
diadiavova
Дата 29.1.2010, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 22
Всего: 142



Цитата(Innuendo108 @  29.1.2010,  15:55 Найти цитируемый пост)
Вот мне нравится такой метод.. я через DOM в javascript вытягиваю все значения и атрибуты тегов...

Методов несколько. Но вот то, что следует при этом понимать.
Работа с xml в разных браузерах может сильно отличаться, в то же время вся прелесть этого формата в его универсальности и стандартности. Если тебе надо грузить документ, в котором содержатся данные, лежащие на сервере вхмл-документах, то оптимальным способом реализации этой задачи будет всё же тот, который предложил LSD, то есть преобразование документа при помощи XSLT. Здесь всё будет работать независимо от платформы, браузера и даже настроек безопасности. Но если тебе надо формировать контент динамически, то есть в уже загруженную страницу подгружать данные из хмл-документов сервера и вставлять их в документ, не обновляя страницу, то тут без DOM и javascript не обойтись. Но последний вариант имхо - геморный, особенно в случае кроссбраузерной вёрстки.
Цитата(Innuendo108 @  29.1.2010,  15:55 Найти цитируемый пост)
Это так тормозит DOM или что-то у меня не так в системе?
Не думаю, что дом на столько тормозит, тем более в случае такого маленького документа, но это может быть например ожидание ответа сервера.

Добавлено через 3 минуты и 11 секунд
Цитата(Innuendo108 @  29.1.2010,  15:55 Найти цитируемый пост)
Это глюк на форуме, или что-то я не так делаю - какой бы я code= не указывал (html или javascript) - он делает без подсветки, как code=xml - такое же делает.

У тебя видимо опера. В десятой опере наша подсветка не пашет. У меня всё отображается правильно.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Innuendo108
Дата 29.1.2010, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 143
Регистрация: 3.4.2008

Репутация: нет
Всего: 2



diadiavova, Я уже начал читать про XPath и XSLT на w3school. Пока всё предельно ясно. Но я так понимаю это будет не динамически.
Просто вот как будет - пользователь выбирает из списка значение, и в связи с выбранным значением должен отобразится (на этой же странице) нужный xml документ.
Я так понимаю я могу делать это через iframe, но это как-то несолидно щас... Или использовать AJAX... но тогда придётся обращаться к DOM, а я тут нашел документец-слайдшоу с какой-то презентации Sun... где написано, что каждое обращение к DOM - драгоценное время и не малое.

А какой самый быстрый способ? php - парсер?

Посоветуйте плз.


P.S. нет. у меня Хромиум... Вот, что странно. Я же даже выбрал хтмл-овский код, и подписал он ['code=html'], а после утверждения поста, в моём сообщении ['code=xml'] и нет подсветки. 
P.P.S. Да, это браузер - открыл из Мозиллы - есть подсветка. Из Google Chrome (не Chromium) тоже есть
PM MAIL   Вверх
diadiavova
Дата 30.1.2010, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 22
Всего: 142



Цитата(Innuendo108 @  29.1.2010,  22:45 Найти цитируемый пост)
Просто вот как будет - пользователь выбирает из списка значение, и в связи с выбранным значением должен отобразится (на этой же странице) нужный xml документ.
Ну об этом я написал в предыдущем посте: в твоём случае только дом.
Тут для ИЕ изучай работу с библиотекой msxml на мсдн есть вся документация, по другим браузерам не скажу тут лучше вопрос в соответствующем разделе задать(javascript). Если используешь какие-либо javascript-фреймворки, то наверняка можно найти какой-нибудь кроссбраузерный плагин для работы с хмл, но это всё в тех же разделах тебе лучше подскажут.
Кстати: если работаешь с msxml, то для загрузки документа там есть свои методы, так что можно и без аякса обойтись. А на счёт пхп я вообще ничего не знаю smile 


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Innuendo108
Дата 30.1.2010, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 143
Регистрация: 3.4.2008

Репутация: нет
Всего: 2



Ясненько...  Спасибо.
Ну для не ИЕ браузеров , w3school "мамой клянется", что этот xhttp=new XMLHttpRequest() - поддерживается "во всех современных браузерах"

Это сообщение отредактировал(а) Innuendo108 - 1.2.2010, 09:39
PM MAIL   Вверх
diadiavova
Дата 31.1.2010, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 22
Всего: 142



Цитата(Innuendo108 @  30.1.2010,  22:43 Найти цитируемый пост)
что этот xhttp=new XMLHttpRequest() - поддерживается "во всех современных браузерах" 

Да я не об этом. Этот объект служит для подгрузки ресурсов с сервера во время работы страницы, а ещё есть объекты для работы с XML DOM.
Код

var xmlDOM = new ActiveXObject('Msxml2.DOMDocument');
Дальше с этим объектом и надо работать, или в ИЕ ещё можно использовать тэг xml. Документацию можно начать изучать примерно отсюда
http://msdn.microsoft.com/en-us/library/ms...28VS.85%29.aspx
В принципе существует даже возможность программного xslt-преобразования прямо из скрипта страницы, но это всё в документации есть(опять-таки на счёт других браузеров не скажу).


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Innuendo108
Дата 1.2.2010, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 143
Регистрация: 3.4.2008

Репутация: нет
Всего: 2



Ок. спасибо
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась.

Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение.

Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел

Желаем удачи в Вашем деле!


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | XML, XSL | Следующая тема »


 




[ Время генерации скрипта: 0.0517 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.