标签: qxmlstreamreader

如何在Qt中读取XML节点的属性?

我需要读取a,b,c值(等于a,b,c是某些属性的名称)foreach节点并将它们列在表中,但我不知道如何读取节点值.你能给出一个示例代码吗?

提前致谢

xml qt qxmlstreamreader

3
推荐指数
1
解决办法
7985
查看次数

如何使用Qt从磁盘读取XML文件?

我想读一个xml文件如下:

QFile myFile("xmlfile");  
Run Code Online (Sandbox Code Playgroud)

然后继续从以下开始解析xml:

QXmlStreamReader xmlData(myFile);
Run Code Online (Sandbox Code Playgroud)

..我得到的错误是:

no matching function for call to 'QXmlStreamReader::QXmlStreamReader(QFile&)'
Run Code Online (Sandbox Code Playgroud)

那么问题是什么以及如何解决呢?


问题更新:根据下面选择的答案,代码现在正在运行,没有语法错误.

但是,我无法读取我的xml.在解析xml时,我使用以下内容来读取xml元素:

QXmlStreamReader::TokenType token = xmlElements.readNext();
Run Code Online (Sandbox Code Playgroud)

然后这段代码用于检查startElements:

 while(!xmlElements.atEnd() && !xmlElements.hasError()){ // the breakpoint is here
 do ...
 }
Run Code Online (Sandbox Code Playgroud)

所以,在这个断点处,我在debuger中注意到令牌值是 QXmlStreamReader::Invalid(1)

所以,发生了什么..是我的QStreamReader不读取文件为xml,或者它读取它但xml本身有错误?

c++ qt qfile qxmlstreamreader

3
推荐指数
1
解决办法
6357
查看次数

读取 StartElement 内的 XML 标签 (QXmlStreamReader)

因此,我尝试通读一个中等大小的 XML 文档。它的结构如下:

<project identifier="project1">
    <author>Joe Smith</author>
    <author2>Rick Jones</author2>
    <path>projects/internal/project2</path>
    <version>1.51</version>
</project>
<project identifier="project2">
     <author>Terry Chimes</author>
     <author>Janie Jones</author>
     <path>projects/external/project2</path>
     <version>19.77</version>
</project>
Run Code Online (Sandbox Code Playgroud)

...等等,针对数百个项目。

我正在使用 Qt5.10 QXmlStreamReader,它可能是由虐待狂创建(或记录)的。

我可以project通过使用xmlReader.readNextStartElement- 或逐个阅读标签来找到每个标签,直到找到具有内部属性的标签(只有project标签在此文件中具有属性)。

但是,一旦我读到其中一个父元素,就会QXmlStreamReader吸收每个标签直到其结束</project>标签。问题是我需要获取其中一些数据,在本例中是标签内的内容<path></path>

我可以使用 检索所有吞没的数据xmlReader.readElementText(QXmlStreamReader::IncludeChildElements,但这只是一个没有标签的大数据转储。

有谁知道我如何“倒回”并读取内部标签?或者阻止流读取器向前倾斜并吸收所有数据?

xml qt qxmlstreamreader

2
推荐指数
1
解决办法
2620
查看次数

标签 统计

qt ×3

qxmlstreamreader ×3

xml ×2

c++ ×1

qfile ×1