Здравствуйте, гость ( Вход | Регистрация )
Litkevich Yuriy | Дата 9.1.2010, 23:56 |
Пустой тег можно отличить по отсутствию данных внутри этого тега именно, посмотри пример saxbookmarks, как там учёт открывшихся/закрывшихся тэгов сделан. Довольно простая идея. |
|
quarz | Дата 9.1.2010, 23:19 |
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 | Дата 9.1.2010, 22:32 |
DefaultHandler распознает его как открывающий. Неверно, генерируются оба события "открывающийся тэг" и "закрывающийся тэг".bool QXmlContentHandler::startElement ( const QString & namespaceURI, const QString & localName, const QString & qName, const QXmlAttributes & atts ) [pure virtual] Цитата В случае пустых тегов (например, <x/>) сразу за startElement() следует вызов endElement(). |
|
quarz | Дата 9.1.2010, 22:05 |
Делаю разбор xml с помощью SimpleReader + DefaultHandler. Все гут, но не могу сделать одну вещь - распознать теги такого вида: <tag /> DefaultHandler распознает его как открывающий. Может есть способ получить полную строку тега, чтобы регуляркой "<.*/>" распознать? |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 29.4.2024, 20:03 |