我希望有人能帮助我。
我的问题是我获得了带有 html 实体的 XML,用于特殊字符,例如:
<person>
<firstname>Max</firstname>
<lastname>Müller</lastname>
</person>
<person>
<firstname>Bernd</firstname>
<lastname>Schäfer</lastname>
</person>
我在 QT 中找不到将“ü”解码为普通“ü”的方法。在 QT-DomTree 中,该实体将位于没有 getter 或其他输出或解析功能的 QDomEntityRefrence 对象中。我使用标准方法来解析 XML 树
QDomDocument doc;
if (!doc.setContent(response, &errors))
return false;
QDomElement const & root = doc.firstChildElement("person");
for (QDomElement xmlPerson= root.firstChildElement("person"); !xmlPerson.isNull(); xmlPerson = xmlPerson.nextSiblingElement("person"))
{
QDomNodeList personCont = xmlPerson.childNodes();
PersonObj person;
for(int i = 0; i < personCont.count(); i++)
{
QDomNode itemNode = personCont.at(i);
if(itemNode.isElement()){
QDomElement item = itemNode.toElement();
if(item.tagName() == "firstname")
{
person.setFirstname(item.firstChild().text());
}
else if(item.tagName() == "lastname")
{
addressBook.setLastname(item.firstChild().text());
}
...
结果:
马克斯·米勒
伯恩德·施弗
感谢您的大棚