Russian Qt Forum

Qt => XML => Тема начата: QCasper от Август 14, 2006, 10:36



Название: QDomElement::text();
Отправлено: QCasper от Август 14, 2006, 10:36
допустим у меня есть такой элемент:

Код:
<textlistproperty curValue="0" >Scroll Mode
            <value>Upstairs</value>
            <value>Downwards</value>
            <value>Left</value>
            <value>Right</value>
</textlistproperty>


когда я вызываю метод text(), то мне возвращается строка Scroll ModeUpstairsDownwardsLeftRight, а хотелось бы видеть только Scroll Mode. Вобщем как вытащить текст только текущего элемента, без прихвачивания текстов всех подэлементов?


Название: QDomElement::text();
Отправлено: andi от Август 14, 2006, 12:30
Надо внимательней читать доки.
К примеру, то что находится между <value> и </value>
тоже является нодой.

Вам стоит сделать так, пройтись по дочерним нодам вашего элемента
и посмотреть типы получаемых нод. Как только встретили text, сразу преобразовали и вывели значение. Других вариантов я не знаю.

QDomText text;
...
if(node.isText()) {
    text = node.toText();
    str1 = text.nodeValue().simplifyWhiteSpace();
}


За каким в обычной ноде есть метод text(), не понимаю. Может для общности. Хотя удобно искать вхождения, не перебирая все дочернии ноды.