问题标签 [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.
xml - 将 SCXML 拆分为多个 xml 文件
我正在创建不同的 SCXML 文件,然后由 Qt 应用程序使用。为了更好地构造我的状态机,我想将一台机器的公共部分与其他所有机器的自定义状态分开。所以我想把我的状态机分成2个文件。
父文件:parentStateMachine.scxml
特定于应用程序:applicationSpecific1.scxml
我尝试通过两种方式将特定于父应用程序的应用程序包括在内:
我尝试插入
<xi:include href="applicationSpecific1.xml"parse="text"/>
而不是评论。我尝试
<!DOCTYPE scxml [<!ENTITY innerFile SYSTEM "applicationSpecific1.scxml">]>
在xml
标签之后添加,然后添加&innerFile;
而不是评论。
当我加载文档时,它们会被很好地解析,但从行为中我会推断它没有考虑到应用程序特定的 scxml 中定义的任何内容。
PS: 我发现了这个旧的未解决的错误报告,我希望它已经解决了。 https://bugreports.qt.io/browse/QTBUG-1088
c++ - QT:QXmlStreamReader 总是返回“文档过早结束”错误
我对 Qt QXmlStreamReader 有一个奇怪的问题。我正在尝试解析简单的文档(注意:它是使用 QXmlStreamWriter 生成的):
使用此代码:
它总是报告错误“文档过早结束”。为什么?在调试时,似乎所有元素都被正确解析或跳过。
c++ - 如何在 QXmlStreamReader CPP 中找出元素是否有子元素
我有一个巨大的 Xml 文件,它的元素可以是重复的,并且可以包含许多子元素。我需要一个通用代码,它可以读取所有元素及其子元素而无需硬编码。注意:只能使用 QXmlStreamReader ,不能使用 QDomDocument。谢谢 !!
这是我到目前为止编写的代码,但它不起作用,任何帮助将不胜感激。
xml - 使用 QxmlStreamReader 读取带有嵌套标签的 xml 文件
我正在尝试读取具有嵌套标签的 xml 文件,下面是我的 xml 文件
我想阅读标签,但缺少阅读和填充结构的结构化方式。
我正在阅读下面的 xml 文件,它返回所有标签,而不是我想循环 1 个标签,然后开始下一步,例如,我想读取标签 Header 并保存在结构中,然后循环遍历正文等。在下面代码我不明白 Header 何时开始以及何时开始等。
我希望我的问题很清楚,我暂时没有将结构填充到代码中,只使用了 qDebug()。
PS 上面的代码永远不会用于“Body”和“tbaData”
qt - 如何读取具有相同标签名称的 XML
如何使用 QXmlStreamReader 读取 XML 中具有相同标签“JobName”的元素
xml - 读取 StartElement (QXmlStreamReader) 中的 XML 标签
因此,我试图通读一个中等大小的 XML 文档。它的结构如下:
...等等,用于数百个项目。
我正在使用 Qt5.10's QXmlStreamReader
,它可能是由虐待狂创建(或记录)的。
我可以project
通过使用xmlReader.readNextStartElement
- 或逐个标签地读取每个标签,直到找到一个具有内部属性的标签(只有project
标签在此文件中具有属性)。
但是,一旦我阅读了这些父元素中的一个,它就会QXmlStreamReader
吸收每个标签直到它的结束</project>
标签。问题是我需要获取其中的一些数据,在这种情况下,是<path></path>
标签内的内容。
我可以用 检索所有的数据xmlReader.readElementText(QXmlStreamReader::IncludeChildElements
,但这只是一个没有标签的大数据转储。
有谁知道我如何“倒带”并阅读内部标签?或者阻止流读取器向前倾斜并吸收所有数据?
qt - 使用 QXmlStreamReader qt 解析 xml Qstring
我正在尝试解析如下所示的 QString:
我的功能如下所示:
}
但是,我无法完全解析“boards”标签..如果我能得到一些提示来获得它,那就太好了。此外,板标签的数量可能会有所不同,其中一些用于 eth_addresses,例如,上面示例中的板标签是 2 和 3。
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。目前,作为一种解决方法,我删除评论以避免访问冲突。
我不清楚评论(或文件)长度如何导致访问冲突。
整个项目可以从此链接下载
xml - QDomDocument:带有 XML 标记的 setContent 错误
我正在尝试使用 setContent 将我的 XML 文件设置为 QDomDocument,但它返回错误。
我的 XML 文件:
这是我的代码片段:
我运行时收到的错误消息如下:
错误:解析元素 7 11 时发生错误
其中行 = 7,列 = 11。
现在我很确定这可能是因为“\”或“。” 标签(Settings\it.server.com)中可能导致它失败的字符。无法更改 XML,因为它来自外部源。无论如何,我的问题是使用 QDomDocument 吗?
我研究了 QXmlStreamReader 和 Writer 但我还没有弄清楚如何更新属性。QDomDocument 对此有更好的工具。
c++ - QXmlStreamReader 获取标签值
我在使用 QXmlStreamReader 获取嵌套标签的值时遇到问题。我的xml如下:
我只是无法获取位于其他属性内部的标签属性的值:
怎么了?类 Simple1 已正确读取和列出。