在使用 Qt DOM xml 解析器时,我遇到了包含 < 的节点元素的问题。在它的文本中。原始 xml 可能如下所示:
<?xml version="1.0" encoding="UTF-8"?>
...
<Material>
<Name><Beige>1</Name>
<Color>#d3bd90</Color>
</Material>
但是解析器显然翻译了 < 和> 文本到 < 和 >,可能是在调用 QDomDocument::setDocument 时。结果是在名称节点上调用 QDomNode::text() 将给出名称为“1”而不是预期的“<Beige>1”。
有没有一种简单的方法来解决这个问题,其中名称节点中的实际文本可能包含转义的特殊字符?最好同时仍然允许我继续使用 Qt DOM 解析器。
- - 编辑 - -
刚刚使用基于 QXmlDefaultHandler 的 SAX 阅读器进行了测试,结果相同。
QXmlDefaultHandler::characters 只会为 Name 元素返回“1”。