Xml remove problemi

16 views
Skip to first unread message

İbrahim POLAT

unread,
Jun 20, 2020, 5:37:47 AM6/20/20
to Qt Türkiye
Merhabalar;

 Qt ile bir uygulama yazmaya çalışıyorum. Xml kütüphanesi ile veri çekip editleme için yazdığım bir classda remove fonksiyonu doğru çalışmıyor. Gerekli node kısımlarını siliyor fakat en son child element verileri dosya içinde altta gereksiz veri olarak oluşuyor.


--- info.cpp ---

void CamInfo::deletecam(int id){
    file.open(QIODevice::ReadWrite | QIODevice::Text);
     
     QDomNodeList nodes = root.elementsByTagName("cam");
     if(!nodes.isEmpty())
     {
         QDomNode elem = nodes.at(id-1);
         elem.nodeValue().clear();
         QDomNamedNodeMap name= elem.attributes();
         elem.parentNode().removeChild(elem);
     }
     qDebug()<<document.toString();

     //QTextStream stream(&file);
     //stream << document.toString();
     //file.close();

     QByteArray xml = document.toByteArray();
     file.write(xml);
     file.close();
}
--------------------------

--- test.xml ---


<?xml version='1.0'?>
<Cameras>
 <cam ip="192.168.85.1" desc="desc of camera1" name="camera1"/>
 <cam ip="192.168.85.2" desc="desc of camera2" name="camera2"/>
 <cam ip="192.168.85.3" desc="desc of camera3" name="camera3"/>
 <cam ip="192.168.85.4" desc="desc of camera4" name="camera4"/>
 <cam ip="192.168.85.5" desc="desc of camera5" name="camera5"/>
 <cam ip="192.168.85.6" desc="desc of camera6" name="camera6"/>
 <cam ip="192.168.85.7" desc="desc of camera7" name="camera7"/>
 <cam ip="192.168.85.8" desc="desc of camera8" name="camera8"/>
</Cameras>
-------------------------


1, 2, 4 ve 5 silindikten sonra oluşan dosya,


--- test.xml ---


<?xml version='1.0'?>
<Cameras>
 <cam name="camera3" desc="desc of camera3" ip="192.168.85.3"/>
 <cam name="camera6" desc="desc of camera6" ip="192.168.85.6"/>
</Cameras>
camera6" desc="desc of camera6" ip="192.168.85.6"/>
</Cameras>
camera6" desc="desc of camera6" ip="192.168.85.6"/>
</Cameras>
camera6" desc="desc of camera6" ip="192.168.85.6"/>
</Cameras>
2.168.85.6" desc="desc of camera6" name="camera6"/>
</Cameras>


---------------------------

anormal olan qDebug çıktısında veri bozuk değil

"<?xml version='1.0'?>\n
<Cameras>\n
 <cam name=\"camera3\" desc=\"desc of camera3\" ip=\"192.168.85.3\"/>\n 
 <cam name=\"camera6\" desc=\"desc of camera6\" ip=\"192.168.85.6\"/>\n
 </Cameras>\n"

bu şekilde.

Yardımcı olabilir misiniz.


Reply all
Reply to author
Forward
0 new messages