Russian Qt Forum

Qt => XML => Тема начата: spectre71 от Июль 27, 2009, 13:25



Название: Как получить childNodes() в виде исходного текста
Отправлено: spectre71 от Июль 27, 2009, 13:25
Например имеем ноду  <comment>
по сути в ней записаны теги HTML, с соблюдением привил XML (например обязательное закрытие тега)
Код
XML
 <comment>
   <p><b>BLASTX</b> is generally used to find protein coding genes...</p>
   <p>Most proteins are related to other proteins...</p>
   <br />
   <p><b>Net-BlastX</b> is a variant of the BlastX program...</p>
   <br />
   <p>BLAST is a service of the National Center...</p>
   <p>The www BLAST server can be accessed...</p>
 </comment>
 

Как мне для ноды <comment> получит текст вида:

Код
XML
   <p><b>BLASTX</b> is generally used to find protein coding genes...</p>
   <p>Most proteins are related to other proteins...</p>
   <br />
   <p><b>Net-BlastX</b> is a variant of the BlastX program...</p>
   <br />
   <p>BLAST is a service of the National Center...</p>
   <p>The www BLAST server can be accessed...</p>
 

А именно ВСЕ что внутри!


Название: Re: Как получить childNodes() в виде исходного текста
Отправлено: SASA от Июль 28, 2009, 12:51
На форуме была тема, посвящённая серилизации узлов (вывод в терминал для отладки). Там можно посмотреть решения.
Но может стоит пересмотреть способ хранения html. Я, например, храню его в CDATA. getText, и вот тебе html. Можно ещё хранить в Base64. Тоже удобно.

Нашёл. Там ещё много чего интересного.
http://www.prog.org.ru/topic_7577_0.html (http://www.prog.org.ru/topic_7577_0.html)


Название: Re: Как получить childNodes() в виде исходного текста
Отправлено: spectre71 от Июль 28, 2009, 15:08
На форуме была тема, посвящённая серилизации узлов (вывод в терминал для отладки). Там можно посмотреть решения.
Но может стоит пересмотреть способ хранения html. Я, например, храню его в CDATA. getText, и вот тебе html. Можно ещё хранить в Base64. Тоже удобно.

Нашёл. Там ещё много чего интересного.
http://www.prog.org.ru/topic_7577_0.html (http://www.prog.org.ru/topic_7577_0.html)

CDATA проблема - очень много переделывать XML-файлов. Раньше разбиралось через xercesc, и там все делалалось нормально.
XML - это описание данных которые потом инсталлируются через пакеты в приложение. Эти описания составляю и поддерживаю не я и менять на лету правила не могу.

Что значит "Можно ещё хранить в Base64" - не понял про что это!


Название: Re: Как получить childNodes() в виде исходного текста
Отправлено: SASA от Июль 29, 2009, 14:38
Что значит "Можно ещё хранить в Base64" - не понял про что это!

Кодируешь html в Base64 (у QByteArray есть функция) записываешь в узел. Читаешь - раскодирушь. Но этот вариант, я так понял, не подходит :(