使用QXmlStreamReader读取XML标记内的值

时间:2015-05-19 06:31:43

标签: c++ xml qt

我的XML格式为

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

我正在使用QXmlStreamReader来解析XML。我能够阅读标签&#34; Value&#34;和实际值&#34; 8.0&#34;,但我无法阅读XML的active="false">部分。

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

给了我&#34;价值&#34;在label和&#34; 8.0&#34;在text

我将代码修改为

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

但是labelIn返回一个空字符串。我错过了什么吗?

我正在使用Qt 5.3

1 个答案:

答案 0 :(得分:4)

节点的QXmlStreamReader部分称为 attribute 。要获得它的价值,您需要使用QXmlStreamAttributes attribs = xmlReader->attributes(); QString attr = attribs.value("active").toString(); 类的专用API:

<set cascade="delete" inverse="true" lazy="true" name="tblTrackLocationrelations" sort="unsorted" table="tbl_track_locationrelations"> <key column="track_LocationRelations_location_id_fk" /> <one-to-many class="com.src.hibernate.TblTrackLocationrelations" /> </set>