Xerces-C++更新XML文档的空行格式问题

时间:2021-07-09 08:58:16

使用XML

大致代码如下:

 XMLCh tempStr[100];
 XMLString::transcode("LS", tempStr, 99);
 DOMImplementation *impl          = DOMImplementationRegistry::getDOMImplementation(tempStr);

 DOMWriter         *theSerializer = ((DOMImplementationLS*)impl)->createDOMWriter();
//设置输出格式为美观化
 if (theSerializer->canSetFeature(XMLUni::fgDOMWRTFormatPrettyPrint, true))
 theSerializer->setFeature(XMLUni::fgDOMWRTFormatPrettyPrint, true);
...
 XMLFormatTarget *myFormTarget = new LocalFileFormatTarget(strFileName.c_str());

 // do the serialization through DOMWriter::writeNode();
 //

 theSerializer->writeNode(myFormTarget, *doc);

这种方法输出的XML文档,每更新一次XML文件,就会在XML文档中每个元素节点后增加一个空行,这样更新的次数越多,XML文件中的空行越多,文件就变得越来越大。如果把不设置XMLUni::fgDOMWRTFormatPrettyPrint,就不会出现文件增加空行的情况,但生成的XML文件可读性比较差。

查看了Xerces-C++的文档及其例子,好象没有其它更好的方法解决。希望有使用过Xerces-C++的朋友来指点一下!