问题标签 [qtxml]
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.
html - 如何不转义 QDomText 中的 HTML 特殊字符?
我正在尝试使用 Qt XML 创建一个包含 Javascript 的 HTML 文档。这是我的 Qt 代码的相关部分:
问题是在 Javascript 代码中,它转义了<
用 替换它的字符<
,给出了以下不是有效的 Javascript 的输出:
我在 Qt 文档中搜索了解决方案,但没有找到任何解决方案。
一种解决方法可能是在写入文件时通过执行<
替换为,但也可能出现我想不理会的 Javascript 代码之外的情况。<
stream << document.toString().replace("<", "<")
<
我还可以想到一些 Javascript 技巧来检查数字是否为负而不使用任何特殊的 HTML 字符,例如if(String(x).indexOf('-') != -1)
,但我想知道是否有更好的方法。
我的问题是如何创建一个QDomText
包含特殊 HTML 字符(如<
、>
、&
等)的文本的对象,而不会将它们转义QDomDocument::toString()
?
xml - 当 XSD 和 XML 都被验证时,QXmlSchema 和 QXmlSchemaValidator 给出错误
我正在尝试在 Qt 中使用 XSD 模式验证 XML。
根据W3C 模式验证器,XML 和 XSD 似乎是有效的。
这是我执行验证的代码:
text
包含必须验证的 XML 文本。SOMSchema_xsd
包含 xsd 架构文本。
当我将架构加载到QXmlSchema
变量ok
中时,cout
我可以看到架构和 xml 都已正确加载。我完全看到了他们。
当我执行验证时,result
它是假的,在控制台中我可以看到以下消息:
我不知道为什么我会收到这些错误,因为:
- 文件被正确加载到类中(我可以用 看到它们
cout
); QXmlSchema
加载 xsd 时没有给我任何错误- W3C 站点对我说 XML 已经过验证,没有任何问题。
我做错了什么?
c++ - 如何使用 QString 作为成员变量初始化 QXmlStreamWriter?
我已经实现了自己的 xml 编写器来将 xml 生成为 QString。
我创建了一个类“MyXmlWriter”,其私有成员变量为 QXmlStreamWriter,并尝试在公共方法 writeToString() 中对其进行初始化
在声明头文件中:
在 cpp 文件中:
此错误出现在构建上: 错误:不匹配调用 (QXmlStreamWriter) (QString ) writer(&result); *
如果在本地方法writeToString()中声明了QXmlStreamWriter 写入,那么我无法在私有方法writePart()中访问此写入器 我想在其他方法中使用成员变量“writer”,这就是为什么本地声明不是我的选项.
xml - 提取 QDomElement 中的整个标签数据
我正在使用 QtXml 来操作一些 svg 文件,我想要做的是,当我在文档中找到特定的 QDomElement 时,我想尝试将整个 xml 元素数据(及其所有子元素)保存到 QString不仅仅是它们的属性和/或标签之间的文本。
想象一下这个标签:(g标签)
我已经可以做的是使用以下代码提取诸如x、y、width、height等属性以及标签之间的文本:
但我无法做到并试图联系他们的是获取所有g标签,它是这样的子元素:
有人知道 Qt 库中的 API 函数或其他替代方法吗?或者我必须使用纯 QString 和 QRegExp 类手动遍历 svg (xml) 文件来实现它
c++ - 读取 QDomElement 的原始值
我有一个 XML 文件,我想从中读取原始值。但是 Qt 将值内容转换为可读的文本......
当我使用以下代码读取值时:
msgNode.firstChildElement("source").text();
然后我得到以下结果:
Press "acquisition" to validate the measurement
但是,我真的想读取原始值并改为读取Press "save" to validate
。
有没有办法读取 QDomElement 的原始值,还是我必须使用另一个类才能做到这一点?
qt - QXmlStreamWriter 在不写入任何文本元素时写入根元素的不同开头
这是没有将任何文本元素写入 xml 文件的代码:
这是输出:
这是想要的输出:
为什么不写任何附加元素时不写根元素的开始?即使没有添加更多元素,有没有办法明确告诉作者写它?同样的事情发生在 C# 中。
python - 使用 XPath 解析 XML (Collada/Dae) 文件
我想将我的示例从 Qt C++ 重写为 Python。
输入文件(“Plane.dae”)
Qt C++:
我尝试用 Python 重写,但我的示例在下一行被冻结:
主文件
qt - QDomElement::text() 没有子元素文本?
我有一个像这样的xml:
以及一个解析QDomDocument
包装它的递归函数。该函数对s进行迭代QDomNode
,将其转换为QDomElement
s并调用text()
方法获取数据。不幸的是,也QDomElement::text()
可以在<a>
水平上工作并返回:123
. 所以它收集了所有嵌套元素的文本。
我希望它返回一个空字符串 bcs,我宁愿不检查tagName()
值,因为它们可能很多。所以我宁愿通过haveng/没有文本来检查节点标签,反之亦然。这是可行的吗?是否有一种方法可以<a>
为级别返回空字符串和文本值<b>, <c>, <d>
?
PSQDomNode::nodeValue()
为所有元素返回一个空文本。