C++ QDomDocument可以';t使用&;打开内容;文中

C++ QDomDocument可以';t使用&;打开内容;文中,c++,xml,qt,C++,Xml,Qt,我的问题如下: xmlFile->open(QIODevice::ReadOnly|QIODevice::Text; QDomDocument doc("mydocument"); if (!doc.setContent(xmlFile, &msg, &line, &col)) { qDebug()-><<"Failure in Column: "<<(QString)col<<" Line: "+(Q

我的问题如下:

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;
   }
我打开一个XML文件:

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

A.
212
测试1和测试2
无法按如下方式设置内容:

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;
   }
xmlFile->open(QIODevice::ReadOnly | QIODevice::Text;
QDomDocument文件(“mydocument”);
if(!doc.setContent(xmlFile,&msg,&line,&col)){

qDebug()->这是无效的XML。您应该用实体
&;
例如:

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


XML预定义实体的属性。

AFAIK,您的示例文件是无效的XML。
&
必须表示为
&;
。问题是我只允许读取XML,并且在XML中声明了示例中所述的-!有人知道解决方法吗?您可能需要使用自己的
QXmlErrorHandler
并重新记录不知道是否可能。另一个选择是预处理文件,并将
&
动态转换为
&;
。还有其他解决方案吗?因为我的XML文件有大约350000行和更多行。所以我对这个主题有点感兴趣,但问题是,为了快速得到结果,我如何实现在我的XML中是否包含这个实体?我发现一些理论上的东西´&;;´是一个预定义的实体,您不必实现它。