crossplatform.ru

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


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

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

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


Последние 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 Текстовая версия Сейчас: 27.4.2024, 18:48