Всем привет!
Теперь другая проблемма:
Я прохожу xml файл, ищу теги с именем scene, если нахожу, то создаю файл с именем атрибута("id") тега.
Не могу понять почему цикл
while(!domNode.isNull())
{
...
}
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();
}
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();
}
}
Ну как бы
QDomElement b=docXML.createElement("");
b=domElement;
docXML.appendChild(b);
...............
{
QTextStream(&file) << docXML.toString();
QDomElement b=docXML.createElement("");
b=domElement;
docXML.appendChild(b);
...............
{
QTextStream(&file) << docXML.toString();
QDomDocument docXML;
QDomElement b=docXML.createElement("");
b=domElement;
docXML.appendChild(b);
while(!domNode.isNull())
{
...
}
делаю вот так:
#define NodeName "NodeName"
...
...
QDomElement root = DomDocument.documentElement();
QDomElement child = root.firstChildElement(NodeName);
while (!child.isNull())
{
// действия с child
child = child.nextSiblingElement(NodeName);
}
domNode = domNode.nextSibling();
if(domNode.isElement())
#define NodeName "NodeName"
...
...
QDomElement root = DomDocument.documentElement();
QDomElement child = root.firstChildElement(NodeName);
while (!child.isNull())
{
// действия с child
child = child.nextSiblingElement(NodeName);
}
domNode = domNode.nextSibling();
if(domNode.isElement())
domNode = domNode.nextSibling();
if(domNode.isElement())
у Вас должно получиттся:
#define NodeName "scene"
irReleaseXML::traverseNode1(const QDomNode &node, QString bufLevel)
{
QDomElement child = node.firstChildElement(NodeName);
while (!child.isNull())
{
QString bufScene = child.attribute("id");
QString str = "XMLrelease/"+bufLevel+"/";
QDir a;
a.mkdir(str);
QDomDocument docXML;
QDomElement b = docXML.createElement("");
docXML.appendChild(b);
QFile file(str+bufScene+".xml");
if(file.open(QIODevice::WriteOnly))
{
QTextStream out(&file);
out << docXML.toString() << endl;
file.close();
}
child = child.nextSiblingElement(NodeName);
}
}
QDomDocument docXML;
QDomElement b = docXML.createElement("");
b=child;
QDomDocument docXML;
QDomElement b = docXML.createElement("");
b=child;
docXML.appendChild(b);
QDomDocument docXML;
//QDomElement b = docXML.createElement("");
//b=child;
docXML.appendChild(child);
QDomDocument docXML;
QDomElement b = docXML.createElement("");
b=child;
docXML.appendChild(b);
QDomDocument docXML;
docXML.appendChild(child);
docXML.appendChild(child);
//child - элемент из другово документа
QDomDocument docXML;
QDomElement b = docXML.createElement("");
b=child;
docXML.appendChild(b);
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)