- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这是 xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<Text>alpha beta</Text>
<Text>beta gamma</Text>
<Text>gamma delta</Text>
<Text>delta epsilon</Text>
<Text>epsilon golf</Text>
这是我的读者:
QXmlStreamReader inputStream(&dataFile);
while (!inputStream.atEnd() && !inputStream.hasError())
{
inputStream.readNext();
if (inputStream.isStartElement())
{
QString name = inputStream.name().toString();
if (name == "Text")
{
qDebug() << "text:" << inputStream.readElementText();
}
}
}
我的 qDebug 只打印:文本:“alpha beta”
为什么它只返回一个值,我该如何更正它?
BR
最佳答案
正如 Frank 在评论中正确指出的那样,一个有效的 XML 文档只能有一个根元素。一旦你修复了数据文件内容,它就会工作,但无论如何,我提供了我在我的机器上测试期间使用的所有内容。
<?xml version="1.0" encoding="UTF-8"?>
<TextList>
<Text>alpha beta</Text>
<Text>beta gamma</Text>
<Text>gamma delta</Text>
<Text>delta epsilon</Text>
<Text>epsilon golf</Text>
</TextList>
#include <QXmlStreamReader>
#include <QDebug>
#include <QString>
#include <QFile>
int main()
{
QFile file("test.xml");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
qDebug() << "File open error:" << file.errorString();
return 1;
}
QXmlStreamReader inputStream(&file);
while (!inputStream.atEnd() && !inputStream.hasError())
{
inputStream.readNext();
if (inputStream.isStartElement())
{
QString name = inputStream.name().toString();
if (name == "Text")
{
qDebug() << "text:" << inputStream.readElementText();
}
}
}
return 0;
}
TEMPLATE = app
TARGET = main
QT = core
SOURCES += main.cpp
qmake && make && ./main
text: "alpha beta"
text: "beta gamma"
text: "gamma delta"
text: "delta epsilon"
text: "epsilon golf"
关于c++ - QXmlStreamReader 只返回一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20980434/
这是 xml 文件: alpha beta beta gamma gamma delta delta epsilon epsilon golf 这是我的读者: QXmlStreamReader in
我有一个 QXmlStreamReader 变量,我希望它遍历我的 xml 文件 - QFile,并通过函数 readNextStartElement() 读取所有开始元素。但它给了我每个开始标记两次
我正在尝试使用 QXmlStreamReader 读取 XML 文档。当我尝试将指向读者的指针传递给其他类时,我遇到了问题。我在一个类中创建了一个阅读器实例。该类读取 XML,直到它到达定义新类的 b
我在使用 Qt QXmlStreamReader (Qt 4.8.1) 检测空元素时遇到了一些问题。有一个 XML 文件包含以下部分 4,5,6,7,8,9,10,11 tru
在我的系统上,一段适用于 Python 2 的代码不适用于 Python 3。 f = open("plotwidget.svg") svgData = f.read() xml_stream = Q
我正在使用 Qt 5.11.1(MSVSC2015 32 位)和 QtCreator 4.6.2。我在使用 QXmlStreamReader 解析 XML 时遇到问题。代码是根据Qt's exampl
我用 QXmlStreamWriter 创建了这个 xml 文件: Bayer Lever
我正在尝试从网站解析一些值。为此,我使用了 QXmlStreamReader。开始解析后,我收到 XML 错误:“应为 '=',但得到的是 '>'。”。它打破了这个格式错误的元素: 我想这是因为标准
我必须实现一个 xml 解析器,它在运行时构造 Qt 对象并将其放置在小部件中。我写了一个基于 this 的解析器.一个模块代表 QWidget,它将包含 QPushButton 和 QCheckBo
你好,问题是我正在使用 QXmlStreamReader 读取 XML 文件以读取日历的约会,但是当我从 AppointmentSolo 切换到 AppointmentRepeat atEnd( )
我有 XML 格式为 8.0 我正在使用 QXmlStreamReader解析 XML。我能够读取标签“值”和实际值“8.0”,但无法读取 XML 的 active="false"> 部分。
我想用QXmlStreamReader读取一个XML文件,但是我实在不知道问题出在哪里。我的函数读取第一个标签的内容,但随后停止。 XML文件的格式: mina
我正在做我正在使用的东西 QXMLStreamReader和 QXMLStreamWriter , 读取和写入文件。 但是我无法找到一种方法来修改 XML,例如考虑这个 XML:
我正在尝试使用 QXmlStreamReader 解析 XML 文件。使用以下代码,我只能从示例 xml 文件中获取第一个测试用例。 from PyQt4.QtCore import QXmlStre
因此,我正在尝试阅读一个中等大小的 XML 文档。它的结构如下: Joe Smith Rick Jones projects/internal/project2 1.
因此,我正在尝试阅读一个中等大小的 XML 文档。它的结构如下: Joe Smith Rick Jones projects/internal/project2 1.
使用 QXmlStreamReader , 我想要使用 HTML 标签的富文本格式的 XML 文件。例如,在此文件中,如果能够访问 会很好和其他用于格式化文本的 HTML 标记。 (使用 Qt,我可
用Qt的QXmlStreamReader读取Xml数据时: readNext() 应该放在 while(!reader.atEnd()) 循环的开头还是结尾?我遇到过很多把它放在开头的例子,但也有很多
我要解析的 XML 是这样的: 1234 /foo/bar 现在,我需要为 post 的每个 child 插入,它的标签名称和内容在一个 QVariantM
我正在尝试使用 QXmlStreamReader (Qt 5.5.1) 在 C++ 中解析 xml 文件。我正在使用 XML 文件将数字键映射到相应的图像文件。我已经让它与一个简单的 XML 文件一起
我是一名优秀的程序员,十分优秀!