2010-09-23 4 views
1

Я работаю над небольшой программой, написанной на C++, с использованием QT Framework (версия 4.7).Добавить узел в существующий документ XML

Задача, которую я хочу выполнить, - это открыть существующий xml-документ, добавить узел в его структуру и сохранить документ в файл, который я прочитал ранее. Я попробовал это, используя что-то вроде этого:

QFile xmlIn(AFileName); 
QDomDocument doc("report_1"); 
if (xmlIn.open(QIODevice::ReadOnly)) { 
    if (doc.setContent(&xmlIn)) { 
     QDomElement docElem = doc.documentElement(); 

     QDomNode n = docElem.firstChild(); 
     // Do something with the element here 
     n = n.nextSibling(); 
    } 
} 
// Code for saving the edited QDomDocument comes here 

Но у меня есть стойкое ощущение, что я наблюдающие за существенную роль здесь, потому что это, кажется, задача, которая является очень распространенным явлением и, как правило QT Lib должен предоставить все один мог хотеть: D

Пожалуйста, просветите меня :)

ответ

0

Используйте "QXmlStreamWriter" ...

QXmlStreamWriter lStreamWriter; 

if(lProjectFile.open(QIODevice::WriteOnly|QFile::Text)) 
{ 
    lStreamWriter.setDevice(&lProjectFile); 
    lStreamWriter.writeStartDocument(); 
    lStreamWriter.writeStartElement("element"); 
    lStreamWriter.writeAttribute("attribute","value"); 
    lStreamWriter.writeEndElement(); 
    lStreamWriter.writeEndDocument(); 
    lProjectFile.close(); 
} 
+2

Это не присоединяя узел. Это переписывает весь документ. :( – phoenies

Смежные вопросы