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