0

在使用 Qt DOM xml 解析器时,我遇到了包含 < 的节点元素的问题。在它的文本中。原始 xml 可能如下所示:

<?xml version="1.0" encoding="UTF-8"?>
...
    <Material>
        <Name>&lt;Beige&gt;1</Name>
        <Color>#d3bd90</Color>
    </Material>

但是解析器显然翻译了 < 和> 文本到 < 和 >,可能是在调用 QDomDocument::setDocument 时。结果是在名称节点上调用 QDomNode::text() 将给出名称为“1”而不是预期的“<Beige>1”。

有没有一种简单的方法来解决这个问题,其中名称节点中的实际文本可能包含转义的特殊字符?最好同时仍然允许我继续使用 Qt DOM 解析器。

- - 编辑 - -

刚刚使用基于 QXmlDefaultHandler 的 SAX 阅读器进行了测试,结果相同。
QXmlDefaultHandler::characters 只会为 Name 元素返回“1”。

4

0 回答 0