QDomDocument无法打开带有&的内容。在文中

时间:2013-01-08 08:34:58

标签: c++ xml qt

我的问题如下:

我打开一个XML文件:

<?xml version="1.0" encoding="UTF-8"?>
<A>
  <C>A</C>
  <D>212</D>
  <E>Test1 & Test2</E>
</A>

无法像以下内容一样设置内容:

xmlFile->open(QIODevice::ReadOnly|QIODevice::Text;

 QDomDocument doc("mydocument");
 if (!doc.setContent(xmlFile, &msg, &line, &col)) {
       qDebug()-><<"Failure in Column: "<<(QString)col<<"  Line: "+(QString)line;
       return false;
   }

如果我删除&amp;从XML文件我可以设置内容。

为什么?

1 个答案:

答案 0 :(得分:2)

这是无效的XML。你应该替换&amp;实体&amp; 例如:

<?xml version="1.0" encoding="UTF-8"?>
<A>
<C>A</C>
<D>212</D>
<E>Test1 &amp; Test2</E>
</A>

您可以使用online validation service

验证XML

List XML预定义实体。