使用QIODevice :: write方法添加“  “而不是回车

时间:2016-01-21 13:20:28

标签: c++ xml qt character-encoding ascii

为了替换XML文件的一部分,我使用的是QDomNode类:

  • 在现有节点之前插入节点
  • 删除节点

但是当我这样做时,我得到了一个可怕的结果:我添加的节点的每一行都以这些字符结尾

<?xml version='1.0'?>
  <scene>
    <material>
      <uid>50000006</uid>
      <name>NEW_NODE</name>&#xd;
                            /&#xd;
                          .7&#xd;
               \       , //&#xd;
               |\.--._/|//&#xd;
              /\ ) ) ).'/&#xd;
             /(  \  // /&#xd;
            /(   J`((_/ \&#xd;
           / ) | _\     /&#xd;
          /|)  \  eJ    L&#xd;
         |  \ L \   L   L&#xd;
        /  \  J  `. J   L&#xd;
        |  )   L   \/   \&#xd;
       /  \    J   (\   /&#xd;
       |  \      \   \```&#xd;
   </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());
}

0 个答案:

没有答案