当源xml节点文本包含转义特殊字符时解析QDomeNode

当源xml节点文本包含转义特殊字符时解析QDomeNode,xml,qt,parsing,qtxml,Xml,Qt,Parsing,Qtxml,在使用Qt-domxml解析器时,我遇到了包含&lt;在它的文本中。 原始xml可能如下所示: <?xml version="1.0" encoding="UTF-8"?> ... <Material> <Name>&lt;Beige&gt;1</Name> <Color>#d3bd90</Color> </Material> ... 贝格

在使用Qt-domxml解析器时,我遇到了包含&lt;在它的文本中。 原始xml可能如下所示:

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

...
贝格1
#d3bd90
但是解析器显然会翻译&lt;及&gt;可能在调用QDomDocument::setDocument时将文本转换为<和>。因此,在name节点上调用QDomNode::text()会将名称命名为“1”,而不是预期的“1”

如果名称节点中的实际文本可能包含转义的特殊字符,是否有一种简单的方法来解决此问题?最好在仍然允许我继续使用qtdom解析器的情况下

---编辑---

刚刚使用基于QXmlDefaultHandler的SAX读取器进行了测试,结果相同。

QXmlDefaultHandler::characters将仅为Name元素返回“1”。

在QDomNode::toText()之前尝试QDomNode::normalize您需要的是toElement(),然后是text(),在示例中可以很好地使用。