System error -2146697210
时间:2011-12-04
来源:互联网
我在用C++写一个用MSXML解析XML文件的程序,文件load没有问题,但是在用selectSingleNode选取节点时总是得不到节点,返回错误System error -2146697210,请各位大侠帮忙,不胜感激。。。
作者: yingsunyunmeng 发布时间: 2011-12-04
no code, no truth!
作者: JoeBlackzqq 发布时间: 2011-12-04
#import <msxml4.dll>
#include <string>
#include <list>
#include <objbase.h>
using namespace MSXML2;
CoInitialize(NULL); //初始化COM库
HRESULT hr;
MSXML2::IXMLDOMDocument2Ptr ptrFedDocument=NULL; //指向整个FED文件的指针
MSXML2::IXMLDOMElementPtr ptrElement=NULL;
MSXML2::IXMLDOMNodePtr ptrRootNode=NULL; //整个文件的根节点
hr=ptrFedDocument.CreateInstance(__uuidof(DOMDocument40));//创建MSXML文档实例
if(FAILED(hr))
{
CoUninitialize();
throw FSLLRC_CreateMSXMLInstanceException();
}
ptrFedDocument->async = VARIANT_FALSE;
hr=ptrFedDocument->load(fedFileName.c_str()); //加载FED文件
if(FAILED(hr))
{
CoUninitialize();
throw FSLLRC_LoadFEDException();
}
ptrElement=ptrFedDocument->GetdocumentElement();
ptrRootNode=ptrFedDocument->selectSingleNode(_bstr_t("FSLRTIFED"));
if(NULL==ptrRootNode)
{
BSTR reason;
ptrFedDocument->parseError->get_reason(&reason);
system("pause");
}
if(NULL==ptrRootNode)
{
if(ptrFedDocument!=NULL)
{
ptrFedDocument.Release();
}
if(ptrElement!=NULL)
{
ptrElement.Release();
}
CoUninitialize();
throw FSLLRC_FEDDetialException("FED文件根节点为空");
}
if(ptrFedDocument!=NULL)
{
ptrFedDocument.Release();
}
if(ptrElement!=NULL)
{
ptrElement.Release();
}
if(ptrRootNode!=NULL)
{
ptrRootNode.Release();
}
CoUninitialize();
这是程序中解析部分的代码,
<?xml version="1.0" encoding="UTF-8"?>
<!--FED file template-->
<FSLRTIFED>
<Federation/>
<Fedversion/>
<spaces/>
<ObjectRoot name="FSLRTIObjectRoot">
<Object name="Plan">
<attribute name="PositionX" TransportationType="Reliable" TransportationOrder="TimeStamp"/>
<attribute name="PositionY" TransportationType="Reliable" TransportationOrder="TimeStamp"/>
<attribute name="PositionZ" TransportationType="Reliable" TransportationOrder="TimeStamp"/>
<Object name="K-8">
<attribute name="K-8-Color" TransportationType="Reliable" TransportationOrder="TimeStamp"/>
<Object name="K-8-2">
<attribute name="K-8-2-Speed" TransportationType="BestEffort" TransportationOrder="TimeStamp"/>
<attribute name="K-8-2-Acceleration" TransportationType="BestEffort" TransportationOrder="TimeStamp"/>
</Object>
</Object>
</Object>
</ObjectRoot>
<InteractionRoot name="Bing" TransportationType="Reliable" TransportationOrder="ReceiveOrder">
<parameter name="BoulNum"/>
<parameter name="DX"/>
<parameter name="DY"/>
</InteractionRoot>
</FSLRTIFED>
这是XML文件
#include <string>
#include <list>
#include <objbase.h>
using namespace MSXML2;
CoInitialize(NULL); //初始化COM库
HRESULT hr;
MSXML2::IXMLDOMDocument2Ptr ptrFedDocument=NULL; //指向整个FED文件的指针
MSXML2::IXMLDOMElementPtr ptrElement=NULL;
MSXML2::IXMLDOMNodePtr ptrRootNode=NULL; //整个文件的根节点
hr=ptrFedDocument.CreateInstance(__uuidof(DOMDocument40));//创建MSXML文档实例
if(FAILED(hr))
{
CoUninitialize();
throw FSLLRC_CreateMSXMLInstanceException();
}
ptrFedDocument->async = VARIANT_FALSE;
hr=ptrFedDocument->load(fedFileName.c_str()); //加载FED文件
if(FAILED(hr))
{
CoUninitialize();
throw FSLLRC_LoadFEDException();
}
ptrElement=ptrFedDocument->GetdocumentElement();
ptrRootNode=ptrFedDocument->selectSingleNode(_bstr_t("FSLRTIFED"));
if(NULL==ptrRootNode)
{
BSTR reason;
ptrFedDocument->parseError->get_reason(&reason);
system("pause");
}
if(NULL==ptrRootNode)
{
if(ptrFedDocument!=NULL)
{
ptrFedDocument.Release();
}
if(ptrElement!=NULL)
{
ptrElement.Release();
}
CoUninitialize();
throw FSLLRC_FEDDetialException("FED文件根节点为空");
}
if(ptrFedDocument!=NULL)
{
ptrFedDocument.Release();
}
if(ptrElement!=NULL)
{
ptrElement.Release();
}
if(ptrRootNode!=NULL)
{
ptrRootNode.Release();
}
CoUninitialize();
这是程序中解析部分的代码,
<?xml version="1.0" encoding="UTF-8"?>
<!--FED file template-->
<FSLRTIFED>
<Federation/>
<Fedversion/>
<spaces/>
<ObjectRoot name="FSLRTIObjectRoot">
<Object name="Plan">
<attribute name="PositionX" TransportationType="Reliable" TransportationOrder="TimeStamp"/>
<attribute name="PositionY" TransportationType="Reliable" TransportationOrder="TimeStamp"/>
<attribute name="PositionZ" TransportationType="Reliable" TransportationOrder="TimeStamp"/>
<Object name="K-8">
<attribute name="K-8-Color" TransportationType="Reliable" TransportationOrder="TimeStamp"/>
<Object name="K-8-2">
<attribute name="K-8-2-Speed" TransportationType="BestEffort" TransportationOrder="TimeStamp"/>
<attribute name="K-8-2-Acceleration" TransportationType="BestEffort" TransportationOrder="TimeStamp"/>
</Object>
</Object>
</Object>
</ObjectRoot>
<InteractionRoot name="Bing" TransportationType="Reliable" TransportationOrder="ReceiveOrder">
<parameter name="BoulNum"/>
<parameter name="DX"/>
<parameter name="DY"/>
</InteractionRoot>
</FSLRTIFED>
这是XML文件
作者: yingsunyunmeng 发布时间: 2011-12-04
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28