LINUX.ORG.RU

XML парсер. Пробежались по всему и хватит!

 ,


1

2

Мне тут понадобилось распарсить (красиво, а не как попало) XML-совместимый файл с помощью довольно «вещь в себе» фреймворка. Вся поддержка формата свелась к возможности последовательного прохода по нодам (без учёта уровней иерархии, банальный поиск «<») плюс чтение полей (или как там это правильно называется) и ещё пару мелких методов.

Когда я спросил у разработчиков «А чё, это всё что ли?», то мне с очень серьёзным лицом объяснили что я охренел и что мне ещё, собаке, нужно.

Вопрос: а что, такая самая базовая функциональность это норма для XML либ? Пользоваться реально неприятно.



Последнее исправление: dataman (всего исправлений: 1)

а что, такая самая базовая функциональность это норма для XML либ?

А что ещё тебе, собаке, надо?

Хпасы и валидацию по схеме можешь сам написать же.

ya-betmen ★★★★★
()

Вопрос: а что, такая самая базовая функциональность это норма для XML либ? Пользоваться реально неприятно.

Пользовался только ET в python и там была побольше функциональность, там помимо тегов атрибуты еще в <> могут быть и вроже еще что-то

Kolins ★★★★★
()

последовательного прохода по нодам (без учёта уровней иерархии, банальный поиск «<») плюс чтение полей (или как там это правильно называется) и ещё пару мелких методов

Звучит как зайчаток SAX парсера.

anonymous
()
Ответ на: комментарий от anonymous

Звучит как зайчаток SAX парсера.

Да, тоже так подумал. И автор топика может сказать, что он охренел, т.к. хочет:

  • поддержку юникода
  • поддержку XML namespace при парсинге (если могут быть в предметной области)
  • поддержку комментариев (а если «<» в тексте коммента?)
  • информацию об иерархии (хотя бы нотификацию о закрывающемся таге)
  • атрибуты

И постепенно получит SAX парсер. Или не получит. Или получит указание о рекомендуемом направлении движения.

blex ★★★
()
Ответ на: комментарий от blex

И постепенно получит SAX парсер

Обоссанное лицо он получит. Потому что Godot. Там элементарные проблемы годами тянутся из версии в версию и все бабки уходят на содержание SJW-шных менеджеров в твиттере, а на любой вопрос «а как» или «почему» тебя шлют в баню.

PPP328 ★★★★★
()

Почитай, как вообще парсят XML. Там есть два подхода: DOM и SAX. Первый тупо проще (есть тот же учёт уровней иерархии), но жрёт место в памяти. Второй очень похож на то, что ты описал. Он в основном, для тяжёлых случаев вроде такого, когда разобранное DOM-дерево может просто не влезть в оперативную память.

Бегло по запросу XML DOM Godot ничего не гуглится (с упоминанием DOM). :( Подробнее не гуглил, возможно, за неделю ты уже решил проблему.

hobbit ★★★★★
()
Ответ на: комментарий от ya-betmen

Не буду спорить, это логично, что над низкоуровневым подходом лепится высокоуровневая обёртка.

ТСу, кстати, тоже ничего не мешает такую обёртку для выбранного фреймворка замонстрячить, если это ещё никто не сделал (вот в последнем я не уверен, кстати).

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)