Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Qt XML
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Обработка XML
quarz
Делаю разбор xml с помощью SimpleReader + DefaultHandler.
Все гут, но не могу сделать одну вещь - распознать теги такого вида: <tag />
DefaultHandler распознает его как открывающий. Может есть способ получить полную строку тега, чтобы регуляркой "<.*/>" распознать?
Litkevich Yuriy
Цитата(quarz @ 10.1.2010, 1:05) *
DefaultHandler распознает его как открывающий.
Неверно, генерируются оба события "открывающийся тэг" и "закрывающийся тэг".
bool QXmlContentHandler::startElement ( const QString & namespaceURI, const QString & localName, const QString & qName, const QXmlAttributes & atts ) [pure virtual]
Цитата
В случае пустых тегов (например, <x/>) сразу за startElement() следует вызов endElement().
quarz
Цитата(Litkevich Yuriy @ 9.1.2010, 22:32) *
Цитата(quarz @ 10.1.2010, 1:05) *
DefaultHandler распознает его как открывающий.
Неверно, генерируются оба события "открывающийся тэг" и "закрывающийся тэг".
bool QXmlContentHandler::startElement ( const QString & namespaceURI, const QString & localName, const QString & qName, const QXmlAttributes & atts ) [pure virtual]
Цитата
В случае пустых тегов (например, <x/>) сразу за startElement() следует вызов endElement().



Спасибо! Вполне логичное замечание =)
У меня есть как теги <x></x>, так и <x/>. По вызову endElement() невозможно понять, какой это тег - обычный закрывающий </x> или пустой...
В DefaultHandler не нашел ничего для этого. Я с xml в Qt только начал разбираться, может чтото пропустил?

Все, разобрался! Пустой тег можно отличить по отсутствию данных внутри этого тега :) Спасибо, Юрий!
Litkevich Yuriy
Цитата(quarz @ 10.1.2010, 2:19) *
Пустой тег можно отличить по отсутствию данных внутри этого тега
именно, посмотри пример saxbookmarks, как там учёт открывшихся/закрывшихся тэгов сделан. Довольно простая идея.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.