使用MSXML加载xml文件时,可不可像CFile:Open(CFile::modeCreate|CFile::modeWrite)有模式可选择吗
下面是我的部分代码(个人觉得没必要提供全部代码)
pDoc->put_async(VARIANT_TRUE);
vFileName.vt = VT_BSTR;
V_BSTR(&vFileName) = bstrFileName;
pDoc->load(vFileName, &vb);
在加载xml时,可否像标题上说的,像CFile:Open(CFile::modeCreate|CFile::modeWrite)有打开模式可以选择。
目前我在做个读取xml文件的练习demo。
假如第一个人读取操作远程主机上共享的xml文件的时候,第二个人再用该demo读取操作时给个提示,只能读,但是不能操作。
这个功能有点像office软件的排他机能。
例如:第一个人在操作远程主机上的excel文件的时候,第二个人再打开该excel文档,excel会弹出一个提示框,
提示该用户只能读取,要想操作该excel的话,必须在第一个人操作完,关闭该excel之后。
我之前有这样一个想法:在读取xml时,产生一个临时文件作为该xml是否被正在操作的标志位。个人感觉不大好。
office系列软件肯定不是这么做的。
我就想从加载xml文件的模式上入手,设想在加载时是否有操作的权限。
大家有没有好的想法。或者知道加载xml文件有模式之类的方法的。
[解决办法]
没发现MSXML有这样的参数!你可以去msdn搜索一下
[解决办法]
msxml 没有加载模式的开关参数。
如果加载一个不存在的xml文件,或是格式不规范的(unwell-formed)xml,msxml 对象抛出错误
dom.parseError.errorCode 与 dom.parseError.reason 可以获得错误的详细信息。
dom.save(path) 是保存的方法,默认是会覆盖原有文件的。