LINUX.ORG.RU

GMarkup XML parser


0

1

Ребят, киньте ссылкой на пример использования GLib GMarkup Simple XML parser. Что-то в гугле не могу ничего вменяемого откопать. Или может у кого есть свой опыт использования? Не подключать же libXML2 ради пары элементов.

★★★★★

а что непонятно-то?

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

А что оно использует, SAX/DOM? Я успел все написать на втором (Qt), и словил тормоза. Так понимаю, DOM медленно работает. Но удобный, зараза.

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

Здесь SAX, я удивился насколько быстро записи перебираются. Там простой перебор в поиске. Думаю попробовать переделать на выборку по XPath. Но не знаю какое ускорение от этого получу и получу ли вообще. Да и по памяти - расход, SAX значительно меньше памяти требует.

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

SAX

Если куча одинаковых тегов, то как узнать, где находимся? я сделал переменную nestLevel, которая текущий уровень вложенности хранит. Имхо костыль, хоть и быстро работает.

XPath

оО Сам боюсь даже начинать эту штуку осваивать. Я так понимаю, она только для сложных и очень больших файлов же, а Вам что-то простое считать нужно?

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

Ну там-то я конфиг парсил, это ерундово, да. Но теперь я дальше пошел - парсю словарь xdxf, а это файлище порядка 25 метров. Вот и не знаю как будет с XPath, сколько оно памяти сожрет. С SAX эти 25 метров перебираются до конца примерно за пару секунд.

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

На твой вопрос я пока не знаю как ответить. Посмотри вот здесь: http://xmlsoft.org/html/libxml-tree.html#xmlNode

Там есть поле extra, написано, что оно для XPath. Логично предположить, что есть функции для работы с этим полем. Например, такая: http://xmlsoft.org/html/libxml-xpath.html#xmlXPathCmpNodes

hibou ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.