XML保存的问题 - VC/MFC / 网络编程
打开一个原有的XML文件<?xml version="1.0" encoding="UTF-8" standalone="no" ?>,文件使用UTF-8格式保存,用二进制方式打开文件头的标识为EF BB BF,但是保存后文件头的标识没有了,也就是文件不再是UTF-8格式的了,并且文件的大小变小了。有时候在文件的末尾会出现部分的重复,这样XML文件的格式就不正确了。
部分代码如下
MSXML2::IXMLDOMDocument2Ptr m_doc;
m_doc.CreateInstance( __uuidof(MSXML2::DOMDocument40)
m_doc->load(m_strSvgFileName.AllocSysString());
m_doc->save(m_strSvgFileName.AllocSysString());
用开源库 如 tinyxml
也可以试着拥有 CMarkup 类库 看看 比较快实现你要的
CMarkup类。。。
微软的COM组件不行吗
看来只能用开源库了
我有一种办法:
你不要使用save(filename)方法,
你先getxml,获取xml的内容,这个内容里面是没有你说的EF BB BF这三个字符的,你写文件的时候先写入这三个字符,然后createfile,writefile(eebbbf),writefile(xml内容),这样就可以了。
我一直都是这样处理的。包括读文件也是使用readfile(3,filesize-3)来获取xml内容,然后再使用msxml2来处理这个xml内容。
建议使用tinyxml,比较简单方便...MS的不清楚,反正能用open source的,我就尽量用open source的,出问题也能自己修复.
相关问答:
从数据库中查询一张表的数据
select 部门,姓名 from tb
如何才能生成下面的xml格式
XML code:
<folder state="unchecked" label="全部">
<folder state="unchecked&qu ......
我要在网页上上传一个XML文件,我在C#中写了一个验证XML文件格式的方法:
private bool ValidateXml(string xmlFilePath)
{
string xsdPath = Request.PhysicalApp ......
下面是XML初始文件内容
XML code:
<upd:Update xmlns:lar="http://schemas.microsoft.com/msus/2002/12/LogicalApplicabilityRules" xmlns:cmd="http://schemas.microsoft.com/msus/2002/12/Up ......