Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XmlStreamWriter_Xml_Qt_Xmlupdate - Fatal编程技术网

XmlStreamWriter

XmlStreamWriter,xml,qt,xmlupdate,Xml,Qt,Xmlupdate,我是Qt的新手,我想使用Qt4和QxmlStreamwriter更新(添加新节点和属性)一个xml文件,但Append open模式将光标设置在enddocument行之后的文件中 使用QXmlStreamWriter是否可以实现这一点?如果是这样,请给我一个示例代码,您需要用额外的节点重新编写文件。流接口(QXmlStreamReader/QXmlStreamWriter)比DOM(QDomDocument)接口更复杂,但具有内存需求较低的优点 使用DOM接口,您可以处理XML文档的内存中表示

我是Qt的新手,我想使用Qt4和QxmlStreamwriter更新(添加新节点和属性)一个xml文件,但Append open模式将光标设置在enddocument行之后的文件中


使用QXmlStreamWriter是否可以实现这一点?如果是这样,请给我一个示例代码

,您需要用额外的节点重新编写文件。流接口(
QXmlStreamReader
/
QXmlStreamWriter
)比DOM(
QDomDocument
)接口更复杂,但具有内存需求较低的优点

使用DOM接口,您可以处理XML文档的内存中表示。使用流接口,您可能需要构建和维护自己的表示

流接口的示例代码:

QFile inputFile("in.xml");
if (! inputFile.open(QIODevice::ReadOnly))
  // error handling
QFile outputFile("out.xml");
if (! outputFile.open(QIODevice::WriteOnly))
  // error handling

QXmlStreamReader inputStream(&inputFile);
QXmlStreamWriter outputStream(&outputFile);

while (! inputStream.atEnd())
{
   inputStream.readNext();
   // manipulation logic goes here
   outputStream.writeCurrentToken(inputStream);
}
QFile inputFile("in.xml");
if (! inputFile.open(QIODevice::ReadOnly))
  // error handling

QDomDocument doc;
if (! doc.setContent(&inputFile))
  // error handling

// manipulation logic goes here

QFile outputFile("out.xml");
if (! outputFile.open(QIODevice::WriteOnly))
  // error handling

outputFile.write(doc.toByteArray());
DOM接口的示例代码:

QFile inputFile("in.xml");
if (! inputFile.open(QIODevice::ReadOnly))
  // error handling
QFile outputFile("out.xml");
if (! outputFile.open(QIODevice::WriteOnly))
  // error handling

QXmlStreamReader inputStream(&inputFile);
QXmlStreamWriter outputStream(&outputFile);

while (! inputStream.atEnd())
{
   inputStream.readNext();
   // manipulation logic goes here
   outputStream.writeCurrentToken(inputStream);
}
QFile inputFile("in.xml");
if (! inputFile.open(QIODevice::ReadOnly))
  // error handling

QDomDocument doc;
if (! doc.setContent(&inputFile))
  // error handling

// manipulation logic goes here

QFile outputFile("out.xml");
if (! outputFile.open(QIODevice::WriteOnly))
  // error handling

outputFile.write(doc.toByteArray());