Как распарсить xml ?



  • Получаю xml-файл get запросом. Далее мне нужно распарсить его элементы. Не важно или в переменные или в массивы или списки. Главное чтоб структурировать инфу для последующей работы в программе.

    Не знаю как подступится к этой задаче? Кто шарит, накидайте пожалуйста хотя бы примерную логику как это сделать в БАС? Буду очень благодарен!



  • @Gang можно пример файла?
    http://i-novice.net/phpxmlxpath-chast-1/
    Вот хорошая статья по работе xpath с xml, читать с раздела Выражения


  • administrators

    @Gang Для парсинга xml используйте xpath,

    0_1487763063065_Xpath.png



  • Я то сам принцип понимаю что через xpath Но нужен примерчик, на основе реального файла. Может кто кинуть? Вот например такой файл http://www.thornsoft.com/pad/clipmate/pad_file.xml Взять его get запросом и распарсить все елементы xml в массив. Чтоб потом пройтись по нему циклом. Или сразу в переменные значения закинуть.



  • Кидаю свой шаблон где я пытаюсь распарсить xml 0_1488058718881_pars_xml.xml Уже нет сил, строчки в массиве XPATH_TEXT_LIST пустые. Паршу узлы //clickurl по которым хочу вытянуть ссылки.

    Помогите пожалуйста!



  • откуда такое желание использовать именно xpath парсинг, если тебе просто нужно вытащить ссылки и все.
    0_1488061411498_1488058725732-pars_xml.xml



  • Спасибо за ваше решение! Об регулярках я в первую очередь подумал. Но этот файл просто для примера. В бою мне нужно будет плотно работать с XML, а там много взаимосвязанных данных парсить. Если в БАС заявлен функционал парсинга xpath, то хочу разобратся почему в моем случае парсит пустые строки?

    p.s Перевожу несколько шаблонов с Зеннопостера на БАС. В тестере xpath Зенки команда //clickurl отрабатывает как надо.



  • @Gang судя по названию переменной, вы исеользуете действие получить каждый текст. Попробуйте использовать Получить каждый xml



  • @Gang said in Как распарсить xml ?:

    то хочу разобратся почему в моем случае парсит пустые строки?

    потому что там идут данные в CDATA, думаю это недоработка, пустых строк отдавать не должно. Должно обработать CDATA и выдать его содержимое..



  • @DrPrime пробовал получаю только теги которые обрамляют текст, но текста внутри тегов нет



  • @out ну вот я кинул пример шаблона не парсит. Выдает пустые строки. Если проблема в CDATA подскажите что дописать в запрос чтоб парсило? Или это баг BAS?



  • @Gang да, я выше писал, что скорее всего это недоработка в БАС. Т.к. из-за того, что там CDATA, ты не получаешь текст.

    чтобы не ждать админа, ты можешь просто конвертировать xml в json и работать с ним гибко. Если есть опыт работы с ним.


  • administrators

    @Gang Да, это баг. cdata читается только внутри тега script и возможно еще некоторых. В связи с этим временный фикс.
    0_1488205981161_xpathcdata.xml
    В следующей версии исправлю.



  • @support Спасибо! Как приятно получать качественную поддержку от самого разработчика! А то на форуме Зенки в поддержке какие-то посредники между клиентами и разработчиками, по сто раз объясняешь где баг, а они фиксят но не то что нада))


Log in to reply
 

Looks like your connection to Bablosoft was lost, please wait while we try to reconnect.