День добрый.
До сих пор тут в read-only режиме был, но вот и у меня возникла проблема:
надо читать с помощью Qt здоровые и сложные по структуре XML, и моя подсмотренная у одного XML-редактора реализация «читалки» оказалась дико тормозной.
Собственно вот эта функция, от которой все беды:
QDomElement SigmaDCFile::getXmlElement(const QDomNode & domNode, const QString& path, Qt::CaseSensitivity caseSensitivity) const {
QStringList elementTagNames = path.split('/');
QDomNodeList domNodeList = domNode.childNodes();
for(int i = 0; i < domNodeList.count(); i++)
if(domNodeList.at(i).toElement().tagName().compare(elementTagNames.first(),caseSensitivity) == 0) {
elementTagNames.takeFirst();
if(elementTagNames.isEmpty())
return domNodeList.at(i).toElement();
else
return getXmlElement(domNodeList.at(i).toElement(),elementTagNames.join("/"), caseSensitivity);
}
return QDomElement();
}