2016-01-18 2 views
0

Ниже у меня есть образец моего XML-файла, я хочу удалить определенный узел в каждом заголовке. Как мне это сделать. например, в заголовке <HEADER> Я хочу удалить узел <ADDRESS>, а не только его атрибут, а весь узел. в <HEADER1> Мне нужно удалить атрибут <UMG_VAR Name="ABC" Value=1></UMG_var>, здесь Name атрибут уникален.Удаление определенного узла XML-файла

<MAIN> 
 

 
    <HEADER> 
 
     <TITLE>ppc_ph_pios</TITLE> 
 
     <AUTOR>DNL</AUTOR> 
 
     <AGE>age</AGE> 
 
     <SEX>Male</SEX> 
 
     <PLACE>Earth</PLACE> 
 
     <ADDRESS>abc</ADDRESS> 
 
    </HEADER> 
 
    <HEADER1> 
 
      <UMG_VAR Name="RED" Value="3"></UMG_VAR> 
 
      <UMG_VAR Name="ABC2" Value="2"></UMG_VAR> 
 
      <UMG_VAR Name="ABC" Value="1"></UMG_VAR> 
 
    </HEADER2> 
 
    
 
</MAIN>

ответ

0
QDomDocument doc; 
doc.setContent(oldXml); 

QDomNodeList nodes = doc.elementsByTagName("element"); 
for (int i = 0; i < nodes.count(); ++i) 
{ 
    QDomNode node = nodes.at(i); 
    QDomElement child = node.firstChildElement("child"); 
    if (!child.isNull() && child.attribute("id") == "0") 
    { 
     node.removeChild(child); 
    } 
} 

QString newXml = doc.toString();