Форум → Программирование → PHP для идиотов → чем парсить XML?
чем парсить XML?
Страницы: ← Предыдущая страница →
-
Сен. 28, 2010, 1:58 д.п., спустя 2 минуты 6 секунд
Нахуй его в массив загонять?
simplexml поддерживает xpath, который позволяет извлечь из XML практически все что угодно, в одно действие. -
-
-
Сен. 28, 2010, 4:16 п.п., спустя 14 часов 14 минут 46 секунд
Есть 2 подхода.
1. XML выгружается в память, как-то там выстраивается, далее, как правило, по нему можно искать при помощи xPath. Сюда - DOM, SimpleXML. Плюсы - легко искать, минусы - не годится для больших файлов. SimpleXML пошустрее, DOM - удобнее для построения деревьев. Если надо что-то прочитать (например, API всяких сервисов типа геокодера) - я использую SimpleXML, для формирования дерева на корм XSLT - соответственно DOM. Они между собой совместимы, есличо.
2. XML читается последовательно, память не засирается. При этом либо парсер кидает события в начале и конце ноды (SAX - http://php.net/XML ) - это называется "push", либо софт сам управляет чтением, как бы двигая курсор ("дай следующий нод", "полезли вглубь" и т.д.) - это XMLReader, подход называется "pull". SAX - неудобный до блевоты, но шустрый, я им делаю импорт всякого большого говна. SAX в принципе способен жрать невалидный XML, и можно начать парсинг с произвольного места. XMLReader не юзал, собираюсь при случае. -
Сен. 28, 2010, 10:42 п.п., спустя 6 часов 25 минут 33 секунды
Коля Дубр, адекват! ))Спустя 9 сек.шепни за мой разбан там где надо))Спустя 9 сек.а то темы смешные бывают, потроллить хочется :(Сапожник без сапог -
Сен. 28, 2010, 10:54 п.п., спустя 11 минут 42 секунды
phpdude, тебя и на серче забанили, сучка матюкливая?) -
Сен. 28, 2010, 11:01 п.п., спустя 7 минут 2 секунды
сейчас тебя тут забанят.
phpdude, тебя и на серче забанили, сучка матюкливая?)Спустя 37 сек.да забанил один чувак, друг коли))) просто не все админы адекватные и с хорошим настроением как у меня. обыно то чмыриСапожник без сапог -
Сен. 28, 2010, 11:40 п.п., спустя 39 минут 21 секунду
phpdude, золотой ты человек Федор Венедиктович xD -
Сен. 29, 2010, 2:29 д.п., спустя 2 часа 49 минут 17 секунд
Резюмирую:
Есть 2 подхода.
1. XML небольшой, но сложный, требует хитрого анализа - SimpleXML.
2. XML большой, но простой, используется тупо для передачи однотипных данных - SAX или XMLReader.
3. XML большой и сложный, требует хитрого анализа - посылаем нахуй того кто придумал такую архитектуру, пусть делит XML на много маленьких. -
Сен. 29, 2010, 2:30 д.п., спустя 11 секунд
3. XML большой и сложный, требует хитрого анализа - посылаем нахуй того кто придумал такую архитектуру, пусть делит XML на много маленьких.
А если он на хуй посылает? -
Сен. 29, 2010, 2:33 д.п., спустя 3 минуты 29 секунд
Тем хуже для него … будет сам дрочить на свой XML.
А если он на хуй посылает?Спустя 165 сек.Кстати, тут недавно наткнулся. В SimpleXML нельзя сделать:
$size = $sxml->xpath('count(//nodes)');
а, только
$size = count($sxml->xpath('//nodes'));
что несколько напрягает.
Страницы: ← Предыдущая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!