Теперь другая проблемма:
Я прохожу xml файл, ищу теги с именем scene, если нахожу, то создаю файл с именем атрибута("id") тега.
Не могу понять почему цикл
while(!domNode.isNull())
{
...
}
из ф-ции ниже, выполняется только один раз (создается только один xml) хотя элементов с именем scene более одного.
Если изменить тело условия
if(domElement.tagName() == "scene")
{...}
на
if(domElement.tagName() == "scene")
{
QString bufScene = domElement.attribute("id");
QString str = "XMLrelease/"+bufLevel+"/";
QDir a;
a.mkdir(str);
//QDomDocument docXML;
//QDomElement b=docXML.createElement("");
//b=domElement;
//docXML.appendChild(b);
QFile file;
file.setFileName(str+bufScene+".xml");
if(file.open(QIODevice::WriteOnly))
{
//QTextStream(&file) << docXML.toString();
file.close();
}
...., то создаются все xml файлы (столько же, сколько элементов с именем scene), но они, естественно пустые.
Как решить эту проблему? Что я делаю не так?
код ф-ции:
void irReleaseXML::traverseNode1(const QDomNode &node,QString bufLevel)
{
//присваиваем domNode первый элемент из XML файла
QDomNode domNode=node.firstChild();
while(!domNode.isNull())
{
QDomElement domElement = domNode.toElement();
if(domNode.isElement())
{
if(!domElement.isNull())
{
if(domElement.tagName() == "scene")
{
QString bufScene = domElement.attribute("id");
QString str = "XMLrelease/"+bufLevel+"/";
QDir a;
a.mkdir(str);
QDomDocument docXML;
QDomElement b=docXML.createElement("");
b=domElement;
docXML.appendChild(b);
QFile file;
file.setFileName(str+bufScene+".xml");
if(file.open(QIODevice::WriteOnly))
{
QTextStream(&file) << docXML.toString();
file.close();
}
}
}
}
domNode = domNode.nextSibling();
}
}