我有一个程序读取xml文件(FileZilla设置文件),添加用户,然后使用Xerces再次写入文件。
问题是默认情况下,初始欢迎消息元素文本包含此格式

的CR + LF,并且Xerces设法以某种方式将其转换为实际的CR + LF,因此文件中的数据来自此< / p>
<Item name="Initial Welcome Message" type="string">%v
written by Tim Kosse (tim.kosse@filezilla-project.org)
Please visit https://filezilla-project.org/</Item>
到这个
<Item name="Initial Welcome Message" type="string">%v
written by Tim Kosse (tim.kosse@filezilla-project.org)
Please visit https://filezilla-project.org/</Item>
在FileZilla的设置中显示不正确,我假设在任何对服务器的调用中。
我没有自己修改文件的这一部分,只需解析,然后使用此代码由Xerces序列化:
XercesDOMParser parser;
parser.parse(m_settingsPath.c_str());
DOMDocument* doc = parser.getDocument();
// New user added here
DOMImplementation *impl = DOMImplementationRegistry::getDOMImplementation(L"LS");
DOMLSSerializer *theSerializer = ((DOMImplementationLS*)impl)->createLSSerializer();
DOMConfiguration* serializerConfig=theSerializer->getDomConfig();
if (serializerConfig->canSetParameter(XMLUni::fgDOMWRTFormatPrettyPrint, true))
serializerConfig->setParameter(XMLUni::fgDOMWRTFormatPrettyPrint, true);
return theSerializer->writeToURI(doc, L"C:\\work\\temp\\test.xml");
我认为这可以通过修改解析器或序列化器中的某些设置来修复(我不知道问题的来源)但我不知道该设置是什么。