为了替换XML文件的一部分,我使用QDomNode类来:
- 在现有节点之前插入节点
- 删除节点
但是当我这样做时,结果很糟糕:我添加的每个节点的每行结尾都带有 字符。
<?xml version='1.0'?>
<scene>
<material>
<uid>50000006</uid>
<name>NEW_NODE</name>
/
.7
\ , //
|\.--._/|//
/\ ) ) ).'/
/( \ // /
/( J`((_/ \
/ ) | _\ /
/|) \ eJ L
| \ L \ L L
/ \ J `. J L
| ) L \/ \
/ \ J (\ /
| \ \ \```
</material>
</scene>
我希望知道如何在每行结尾不插入这些字符的情况下插入节点。
以下是我插入XML文件中新数据的方法:
// ADD A NEW DATA
void ParserIGS::addNewElement(QDomElement element, QDomElement oldElement)
{
// Insert the new element before the old one
oldElement.parentNode().insertBefore(element,oldElement);
// Verify if the new material had an UID child
QDomNodeList elementNodeList = element.elementsByTagName("uid");
QDomNode n = oldElement.elementsByTagName("uid").at(0);
if(elementNodeList.isEmpty()) // Creation of uid tag as firstChild
element.insertBefore(n, element.firstChild());
else
element.replaceChild(n, element.firstChild());
}
insertAfter
时遇到了相似的问题。特殊序列
被添加(不总是),但在某些行中...我甚至看不出为什么选择了这些行... - salvolds
会在包含textNode
值的行末添加,该值带有一些空格或制表符...例如:<span class="InfoSuppTop_intestazione_eng">
 Information
 </span>
- salvolds