crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в QDomElement::text() - нужно подобие
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 6.9.2008, 22:13
 
Цитата(Novak @ 6.9.2008, 17:01) *
Так что в итоге всё понятно и проблема решена?
Понятно, но проблема не решена, т.е. прийдется всегда проверять тип тэга и в зависимости от типа применять либо Value, либо Text
однообразия нет блин.

Цитата(trdm @ 7.9.2008, 1:15) *
а фигли тут решать?
минут 10 если содержание стабильно...
не понял
trdm Дата 6.9.2008, 21:15
  а фигли тут решать?
минут 10 если содержание стабильно...
Novak Дата 6.9.2008, 13:01
  Так что в итоге всё понятно и проблема решена?
Litkevich Yuriy Дата 6.9.2008, 2:48
  Вот пример:
<?xml version="1.0"?>
<!-- This start comment -->
<root>
<!-- This root comment -->
This is root
<tag1>
    This is tag 1
    <h1> This is header <b1>Qt1</b1> <i1>XML1 is a brain's cancer</i1></h1> 
    <!-- This first comment -->
</tag1>
<tag2>
    This is tag 2
    <!-- This thecond comment -->    
    <p1>This is paragraph <b2>Qt2</b2> <i2>XML2 is a brain's cancer</i2> End of paragraph</p1> 
</tag2>
</root>

Рекурсивный анализ начиная с root, т.е.
QDomDocument doc;
QDomElement root = doc.documentElement();
Вот к какому результату привел:

Type: ElementNode
Name: root
Value:
Data:
Text: This is root This is tag 1 This is header Qt1XML1 is a brain's cancer This is tag 2 This is paragraph Qt2XML2 is a brain's cancer End of paragraph
-----------------------------------------------------
Type: CommentNode
Name: #comment
Value: This root comment
Data:
Text:
-----------------------------------------------------
Type: TextNode
Name: #text
Value: This is root
Data: This is root
Text:
-----------------------------------------------------
Type: ElementNode
Name: tag1
Value:
Data:
Text: This is tag 1 This is header Qt1XML1 is a brain's cancer
-----------------------------------------------------
Type: TextNode
Name: #text
Value: This is tag 1
Data: This is tag 1
Text:
-----------------------------------------------------
Type: ElementNode
Name: h1
Value:
Data:
Text: This is header Qt1XML1 is a brain's cancer
-----------------------------------------------------
Type: TextNode
Name: #text
Value: This is header
Data: This is header
Text:
-----------------------------------------------------
Type: ElementNode
Name: b1
Value:
Data:
Text: Qt1
-----------------------------------------------------
Type: TextNode
Name: #text
Value: Qt1
Data: Qt1
Text:
-----------------------------------------------------
Type: ElementNode
Name: i1
Value:
Data:
Text: XML1 is a brain's cancer
-----------------------------------------------------
Type: TextNode
Name: #text
Value: XML1 is a brain's cancer
Data: XML1 is a brain's cancer
Text:
-----------------------------------------------------
Type: CommentNode
Name: #comment
Value: This first comment
Data:
Text:
-----------------------------------------------------
Type: ElementNode
Name: tag2
Value:
Data:
Text: This is tag 2 This is paragraph Qt2XML2 is a brain's cancer End of paragraph
-----------------------------------------------------
Type: TextNode
Name: #text
Value: This is tag 2
Data: This is tag 2
Text:
-----------------------------------------------------
Type: CommentNode
Name: #comment
Value: This thecond comment
Data:
Text:
-----------------------------------------------------
Type: ElementNode
Name: p1
Value:
Data:
Text: This is paragraph Qt2XML2 is a brain's cancer End of paragraph
-----------------------------------------------------
Type: TextNode
Name: #text
Value: This is paragraph
Data: This is paragraph
Text:
-----------------------------------------------------
Type: ElementNode
Name: b2
Value:
Data:
Text: Qt2
-----------------------------------------------------
Type: TextNode
Name: #text
Value: Qt2
Data: Qt2
Text:
-----------------------------------------------------
Type: ElementNode
Name: i2
Value:
Data:
Text: XML2 is a brain's cancer
-----------------------------------------------------
Type: TextNode
Name: #text
Value: XML2 is a brain's cancer
Data: XML2 is a brain's cancer
Text:
-----------------------------------------------------
Type: TextNode
Name: #text
Value: End of paragraph
Data: End of paragraph
Text:
-----------------------------------------------------

Novak Дата 5.9.2008, 23:26
 
Цитата(Litkevich Yuriy @ 6.9.2008, 0:16) *
может кто-нибудь объяснить, что такое узел?

По сути это единичкая структура.. Т.е. текст - это тоже узел.
Все элементы - узлы, но обратное неверно.
Потому по firstChild должен как раз вылезать текст.
Нужно различать текстовые узлы, элементы, узлы cdata
вот можно схемку посмотреть, может понятней станет...
Litkevich Yuriy Дата 5.9.2008, 23:16
  пытаюсь понять что такое УЗЕЛ (NODE). Описание в стандарте расплавило мозг (из-за бесконечного цикла):
Цитата
The Node interface is the primary datatype for the entire Document Object Model. It represents a single node in the document tree.

или на русском:
Цитата
Интерфейс Node - первичный тип данных для всей Объектной Модели Документов. Он представляет единственный узел в дереве документа.


может кто-нибудь объяснить, что такое узел?

Элемент - содержит все, что находится между отрывающимся тэгом и соответствующим ему закрывающимся тэгом включая эти тэги.
ViGOur Дата 5.9.2008, 20:22
  Удалил, потому как фигню сказал... :blush:
Novak Дата 5.9.2008, 20:20
  obj.firstChild().toText() не поможет?
ViGOur Дата 5.9.2008, 20:17
  Как вариант полученный QString прочитать до первого "<" ? :)
Litkevich Yuriy Дата 5.9.2008, 20:02
  Есть такой XML'ьник:
<?xml version="1.0"?>
<bookindex>
    <h1>Hello
        <b>Qt</b>
        <b>XML is brain's cancer</b>
    </h1>
</bookindex>


Функция QDomElement::text() для элемента h1 вернет строку (без учета форматирования):
Hello Qt XML is brain's cancer

как можно выдернуть только: Hello т.е. без содержимого вложеных тэгов?

Вроде подходящей функции больше нет.
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 10.7.2025, 23:39