2015-05-19 2 views
0

У меня есть формат XML, какзначение чтения в XML-тег с помощью QXmlStreamReader

<Value active="false">8.0</Value> 

Я использую QXmlStreamReader для разбора XML. Я могу прочитать тег «Значение» и фактическое значение «8.0», но я не могу прочитать часть XML-кода active="false">.

const QString label = xmlReader.name().toString(); 
    xmlReader.readNext(); 
    const QString text = xmlReader.text().toString(); 

дает мне "Value" в label и "8,0" в text.

Я изменил код,

const QString label = xmlReader.name().toString(); 
const QString labelIn = xmlReader.readElementText(); 
xmlReader.readNext(); 
const QString text = xmlReader.text().toString(); 

Но labelIn возвращает пустую строку. Я что-то упускаю?

Я использую Qt 5.3

ответ

4

В active="false" часть узла называется атрибут. Чтобы получить свою ценность, вам необходимо использовать выделенный API QXmlStreamReader класс:

QXmlStreamAttributes attribs = xmlReader->attributes(); 
QString attr = attribs.value("active").toString(); 
Смежные вопросы