QXmlStreamReader获取attribute
时间: 2024-05-03 21:18:32 浏览: 158
QXmlStreamRead
可以使用`attributes()`方法获取当前节点的所有属性,然后使用`value()`方法获取指定属性的值。
例如,假设我们有以下XML文档:
```xml
<book id="123">
<title>The Great Gatsby</title>
<author>F. Scott Fitzgerald</author>
</book>
```
我们可以使用以下代码来获取`book`节点的`id`属性:
```cpp
QXmlStreamReader reader(xml); // xml 是上面的 XML 文档
while (!reader.atEnd() && !reader.hasError()) {
if (reader.isStartElement() && reader.name() == "book") {
QString id = reader.attributes().value("id").toString();
qDebug() << "book id:" << id;
}
reader.readNext();
}
```
上述代码中,首先创建了一个`QXmlStreamReader`对象并将其传递给XML文档。然后,我们使用`while`循环遍历XML文档中的所有节点。当我们找到`book`节点时,我们使用`attributes()`方法获取该节点的所有属性,并使用`value()`方法获取`id`属性的值。最后,我们打印出`id`属性的值。
请注意,`attributes()`方法返回一个`QXmlStreamAttributes`对象,它是一个键值对列表。我们可以使用`value()`方法获取指定属性的值。如果属性不存在,`value()`方法将返回一个空字符串。
阅读全文