Доброго времени суток всем.
Чета у меня уже мозг кипит, ни чего не понимаю. Помогите.

вот кусок xml

CODE

<catalogues>
<catalogue id="101" name="New catalogue" >
<element>
<string_view stdf="0" id="102" >
<svfunction type="N 6 0 *" id="103" />
<fieldid id="104" >0</fieldid>
</string_view>
</element>
<group/>
<forms/>
<webforms/>
<description id="105" />
</catalogue>
</catalogues>


узел catalogue формируется так
CODE
DomCfgItem
*DomCfgItem::insertCatalogue(QString &name)
{
DomCfgItem *r=0, *i=0,*t=0,*t2=0;
int index=0;
r = find( md_catalogues );
QString name2=md_catalogue;
QString name3="";
QString ttt="";
if ( r!=0 ) {
while (findByName( "Catalogue." + name)){
ttt.setNum(index);
name =name+ttt; ;
index++;
}
insert( r, name2,name,(long)0);
i = findByName( "Catalogue." + name);
name2=md_element;
name3=QString::null;
insert( i, name2, name3,(long) -1 );
t= findByName( "Catalogue." + name+"."+md_element);
QDomElement it,it2;
QDomDocument xml,xml2;
long id = nextID();
it = xml.createElement(md_string_view);
if (!it.isNull()){
if ( id >= 100 ) it.setAttribute(mda_id,QString::number(id));
it.setAttribute(mda_stdf,QString::number(0));
it2=xml2.createElement(md_svfunction);
it2.setAttribute(mda_id,QString::number(nextID()));
name3="N 6 0 *";
it2.setAttribute(mda_type,name3);
it.appendChild(it2);
it2=xml2.createElement(md_fieldid);
it2.setAttribute(mda_id,QString::number(nextID()));
QDomText domText=xml2.createTextNode("0");
it2.appendChild(domText);
it.appendChild(it2);
t->node().appendChild( it );
}
name3=QString::null;
name2=md_group;
insert( i,name2 , name3, (long)99 );
name2=md_forms;
insert( i, name2, name3, (long)99 );
name2=md_webforms;
insert( i,name2 , name3,(long)99 );
it = xml.createElement(md_description);
it.setAttribute(mda_id,QString::number(nextID()));
i->node().appendChild( it );

qDebug() << "all add";
}
else {
aLog::print(aLog::Debug,"not find md_catalogues \n");
}
return i;
}

все работает суперски , потом начнаем добавлять к узлу еще данные и ни чего не выходит, добавляем этим
CODE
DomCfgItem
*DomCfgItem::insertField(DomCfgItem *context,QString &name)
{
DomCfgItem *sec, *f;
QDomElement it,it2;
QDomDocument xml,xml2;
long id = nextID();
it = xml.createElement(md_field);
if (!it.isNull()){
if ( id >= 100 ) it.setAttribute(mda_id,QString::number(id));
it.setAttribute(mda_name,name);
it.setAttribute(mda_type,"N 2 1 *");
it.setAttribute(mda_sort,"0");
it.setAttribute(mda_nz,"0");
it.setAttribute(mda_sum,"0" );
it.setAttribute(mda_plus,"0");
it2=xml2.createElement(md_description);
if (!it2.isNull()){
it2.setAttribute(mda_id,QString::number(nextID()));
it.appendChild(it2);
}else qDebug() << "DomCfgItem::insertField error2 appendChild";
context->node().appendChild( it );
qDebug() << "DomCfgItem::insertField appendChild ok";
}
else qDebug() << "DomCfgItem::insertField error appendChild";
f=context->find(md_field);
if (f==0) qDebug() << "DomCfgItem::insertField can`t find field ";
else qDebug() << "DomCfgItem::insertField field is find ";
return f;
}

context этот указазтель указывает сразу на узел element
а получить надо это
CODE

<catalogues>
<catalogue id="101" name="New catalogue" >
<element>
<string_view stdf="0" id="102" >
<svfunction type="N 6 0 *" id="103" />
<fieldid id="104" >0</fieldid>
</string_view>
<field sum="0" type="N 2 1 *" plus="0" id="101" nz="0" name="new_field" sort="0" >
<description id="102" />
</field>
</element>
<group/>
<forms/>
<webforms/>
<description id="105" />
</catalogue>
</catalogues>


вот, помогите советом, может ошибка есть или как поэксперементировать чтоб оно таки заработало, Зарание спасибо.