Qt Xml 添加节点
发布时间:2020-12-16 05:59:53 所属栏目:百科 来源:网络整理
导读:原先存在的xml文件 ?xml version="1.0" encoding="UTF-8"? root first 4 / first second 1 / second add 1 / add / root 不多说,直接看添加节点的代码 QString fileName = tmp_dir + "/xxx.xml" ; QDomDocument doc( "myDocument" ) ; QFile inputFile(file
原先存在的xml文件 <?xml version="1.0" encoding="UTF-8"?>
<root>
<first>4</first>
<second>1</second>
<add>1</add>
</root>
不多说,直接看添加节点的代码 QString fileName = tmp_dir + "/xxx.xml";
QDomDocument doc("myDocument");
QFile inputFile(fileName);
if (!inputFile.open(QFile::ReadOnly | QFile::Text))
{
inputFile.close();
return;
}
if (!doc.setContent(&inputFile))
{
qDebug() << "doc.setContent() error!n";
inputFile.close();
return;
}
inputFile.close();
QDomElement docElem = doc.documentElement();
if (docElem.tagName() == "root")
{
QDomNode level_1_child_node = docElem.firstChild();
while (!level_1_child_node.toElement().isNull())
{
if (level_1_child_node.toElement().tagName() == "second")
{
QDomElement menuOnlyElement = doc.createElement("add");
QDomText text = doc.createTextNode("1");
menuOnlyElement.appendChild(text);
docElem.appendChild(menuOnlyElement);
}
level_1_child_node = level_1_child_node.nextSibling();
}
}
if (!inputFile.open(QFile::WriteOnly | QFile::Truncate))
{
inputFile.close();
return;
}
QTextStream ts(&inputFile);
ts.reset();
ts.setCodec("utf-8");
doc.save(ts,4,QDomNode::EncodingFromTextStream);
inputFile.close();
相信大家都看得懂,下面就几个点说一下 QDomElement menuOnlyElement = doc.createElement("add");
QDomText text = doc.createTextNode("1");
menuOnlyElement.appendChild(text);
docElem.appendChild(menuOnlyElement);
这部分代码就是添加的节点的核心了 QFile::Truncate
这个属性代表覆盖原文件的内容。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |