问题标签 [qxmlstreamreader]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
274 浏览

xml - 将 SCXML 拆分为多个 xml 文件

我正在创建不同的 SCXML 文件,然后由 Qt 应用程序使用。为了更好地构造我的状态机,我想将一台机器的公共部分与其他所有机器的自定义状态分开。所以我想把我的状态机分成2个文件。

父文件:parentStateMachine.scxml

特定于应用程序:applicationSpecific1.scxml

我尝试通过两种方式将特定于父应用程序的应用程序包括在内:

  1. 我尝试插入<xi:include href="applicationSpecific1.xml"parse="text"/>而不是评论。

  2. 我尝试<!DOCTYPE scxml [<!ENTITY innerFile SYSTEM "applicationSpecific1.scxml">]>xml标签之后添加,然后添加&innerFile;而不是评论。

当我加载文档时,它们会被很好地解析,但从行为中我会推断它没有考虑到应用程序特定的 scxml 中定义的任何内容。

PS: 我发现了这个旧的未解决的错误报告,我希望它已经解决了。 https://bugreports.qt.io/browse/QTBUG-1088

0 投票
1 回答
1600 浏览

c++ - QT:QXmlStreamReader 总是返回“文档过早结束”错误

我对 Qt QXmlStreamReader 有一个奇怪的问题。我正在尝试解析简单的文档(注意:它是使用 QXmlStreamWriter 生成的):

使用此代码:

它总是报告错误“文档过早结束”。为什么?在调试时,似乎所有元素都被正确解析或跳过。

0 投票
0 回答
369 浏览

c++ - 如何在 QXmlStreamReader CPP 中找出元素是否有子元素

我有一个巨大的 Xml 文件,它的元素可以是重复的,并且可以包含许多子元素。我需要一个通用代码,它可以读取所有元素及其子元素而无需硬编码。注意:只能使用 QXmlStreamReader ,不能使用 QDomDocument。谢谢 !!

这是我到目前为止编写的代码,但它不起作用,任何帮助将不胜感激。

0 投票
1 回答
623 浏览

xml - 使用 QxmlStreamReader 读取带有嵌套标签的 xml 文件

我正在尝试读取具有嵌套标签的 xml 文件,下面是我的 xml 文件

我想阅读标签,但缺少阅读和填充结构的结构化方式。

我正在阅读下面的 xml 文件,它返回所有标签,而不是我想循环 1 个标签,然后开始下一步,例如,我想读取标签 Header 并保存在结构中,然后循环遍历正文等。在下面代码我不明白 Header 何时开始以及何时开始等。

我希望我的问题很清楚,我暂时没有将结构填充到代码中,只使用了 qDebug()。

PS 上面的代码永远不会用于“Body”和“tbaData”

0 投票
1 回答
145 浏览

qt - 如何读取具有相同标签名称的 XML

如何使用 QXmlStreamReader 读取 XML 中具有相同标签“JobName”的元素

0 投票
1 回答
1755 浏览

xml - 读取 StartElement (QXmlStreamReader) 中的 XML 标签

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

...等等,用于数百个项目。

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

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

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

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

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

0 投票
1 回答
598 浏览

qt - 使用 QXmlStreamReader qt 解析 xml Qstring

我正在尝试解析如下所示的 QString:

我的功能如下所示:

}

但是,我无法完全解析“boards”标签..如果我能得到一些提示来获得它,那就太好了。此外,板标签的数量可能会有所不同,其中一些用于 eth_addresses,例如,上面示例中的板标签是 2 和 3。

0 投票
1 回答
233 浏览

c++ - Qt QXmlStreamReader 访问冲突

我正在使用 Qt 5.11.1(MSVSC2015 32bit) 和 QtCreator 4.6.2。我无法使用 QXmlStreamReader 解析 XML。代码是基于Qt 的示例编写的。当我的代码被执行时,它会在 checkWarnMessage 函数的 QIODevice.cpp 中产生访问冲突。此图像显示调用堆栈和发生访问冲突的确切行。

实际的 XML 更复杂并且具有嵌套元素。解析 XML 的函数的实现方式与 Qt 示例中的 void XbelReader::readXBEL() 函数相同(根据元素名称调用适当的函数来解析该元素)。但是通过这个简单的例子,我设法重现了我在实际解决方案中遇到的问题。

XML 是:

解析此 XML 的代码是:

如果我在主函数中注释两行:

不会发生访问冲突。

我真的不知道我做错了什么。或者 QXmlStreamReader 中是否存在错误?我认为即使我做错了什么,Qt 的库中也不应该发生访问冲突。

可以从此链接下载整个项目(XmlParser.pro、main.cpp 和 config.xml)

编辑

我已经按照 Manthan 的建议修复了我的示例,并且它按预期工作。我在 XML 中又添加了一件东西。我在 element1 之前添加了大的多行注释。注释本身有 8019 个字符,包括空白字符,而整个 XML 文件有 8266 个字符。

XML 现在看起来像

我检查了 XML 在带有 XML 工具插件的 Notepad++ 以及 xmlvalidation.xml 中是否有效。当我使用新的 XML 执行固定示例时,我再次在先前链接的图像上描述的完全相同的位置发生访问冲突。

现在,如果我从 XML 中的注释中删除最后一个“o”字符(或注释中的任何其他字符,或者例如 element6 的文本中的“6”,或者事实上,在保持 XML 有效的情况下来自 XML 的任何字符),示例是成功执行。这是我原来的问题。我的原始 XML 文件中有很多注释,导致文件大于 8KB。目前,作为一种解决方法,我删除评论以避免访问冲突。

我不清楚评论(或文件)长度如何导致访问冲突。

整个项目可以从此链接下载

0 投票
1 回答
618 浏览

xml - QDomDocument:带有 XML 标记的 setContent 错误

我正在尝试使用 setContent 将我的 XML 文件设置为 QDomDocument,但它返回错误。

我的 XML 文件:

这是我的代码片段:

我运行时收到的错误消息如下:

错误:解析元素 7 11 时发生错误

其中行 = 7,列 = 11。

现在我很确定这可能是因为“\”或“。” 标签(Settings\it.server.com)中可能导致它失败的字符。无法更改 XML,因为它来自外部源。无论如何,我的问题是使用 QDomDocument 吗?

我研究了 QXmlStreamReader 和 Writer 但我还没有弄清楚如何更新属性。QDomDocument 对此有更好的工具。

0 投票
1 回答
151 浏览

c++ - QXmlStreamReader 获取标签值

我在使用 QXmlStreamReader 获取嵌套标签的值时遇到问题。我的xml如下:

我只是无法获取位于其他属性内部的标签属性的值:

怎么了?类 Simple1 已正确读取和列出。