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();
}

对于有文本的节点,其文本为该节点的第一个子节点,

但对于空节点,是没有文本节点的,所以使用第一种修改会失败.





评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值