当用QDomDocument去解析XML文件的时候,常遇到的一个问题就是要修改element的值然后保存,在论坛上查了下好像没有很好的办法
比如我有个element
<name>a</name>
要改成
<name>b</name>
目前我用的方法是把当前Element和父element同时传入进行replace:
- bool VXmlParser::setElementText(const QString &value, const QString &tagName, const QString &parentTagName)
- {
- QString str(xmlDoc.toString());
- QDomElement parentElement = elementByTagName(parentTagName);
- QDomElement oldElement = elementByTagName(tagName);
- QDomElement newElement = xmlDoc.createElement(tagName);
- QDomText valueText = xmlDoc.createTextNode(value);
- newElement.appendChild(valueText);
- parentElement.replaceChild(newElement, oldElement);
- return true;
- }
但是这种办法的不方便之处是你要知道父节点并传入。不知道大家有没有什么更好的办法