xml空節點修改失敗

今天使用xml時發現一個問題:

xml會自動將空節點 變爲<node/>

對於有文本內容的xml節點,如<node>a<node/>

可以使用如下代碼修改其文本內容:

QDomNode oldnode = node.firstChild();
node.firstChild().setNodeValue(List.at(3));
QDomNode newnode = node.firstChild();
node.replaceChild(newnode,oldnode);
而對於<node/>或者<node></node>這種,代碼則沒用,網上查了半天也沒找到對應

的問題答案.


通過研究發現,代碼要修改如下:

if(node.hasChildNodes())
{
    QDomNode oldnode = node.firstChild();
    node.firstChild().setNodeValue(List.at(4));
    QDomNode newnode = node.firstChild();
    node.replaceChild(newnode,oldnode);
}
else
{
    QDomText text;
    text = doc.createTextNode(List.at(4));
    node.appendChild(text);
    text.clear();
}

對於有文本的節點,其文本爲該節點的第一個子節點,

但對於空節點,是沒有文本節點的,所以使用第一種修改會失敗.





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章