使用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++的朋友来指点一下!