本文整理汇总了C++中msxml2::IXMLDOMDocument2Ptr类的典型用法代码示例。如果您正苦于以下问题:C++ IXMLDOMDocument2Ptr类的具体用法?C++ IXMLDOMDocument2Ptr怎么用?C++ IXMLDOMDocument2Ptr使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了IXMLDOMDocument2Ptr类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: str
MSXML2::IXMLDOMDocument2Ptr CXmlBase::GetXmlDocPtrByStream(CComBSTR bstrXml
, CString strXmlPathFile)
{
CString str(_T(""));
HRESULT hr = S_OK;
MSXML2::IXMLDOMDocument2Ptr pDoc;
//载入到xml文档结构中
hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument40));
if (FAILED(hr))
{
//WRITELOG("END, FAILED TO INVOKE pDoc.CreateInstance");
return NULL;
}
pDoc->async = VARIANT_FALSE; //加载方式为“同步”
pDoc->validateOnParse = VARIANT_FALSE; //文档结构有错误时,停止解析。
if (VARIANT_FALSE == pDoc->loadXML(bstrXml.m_str))
{
//WRITELOG("END, FAILED TO INVOKE pDoc->loadXML");
return NULL;
}
if (!strXmlPathFile.IsEmpty())
{
if (S_OK != pDoc->save((LPCTSTR)strXmlPathFile))
{
//WRITELOG("END, FAILED TO INVOKE pDoc->save");
}
}
return pDoc;
}
开发者ID:cugxiangzhenwei,项目名称:WorkPlatForm,代码行数:33,代码来源:XmlBase.cpp
示例2: InsertEnterAndTabs
MSXML2::IXMLDOMNodePtr CXmlBase::InsertEnterAndTabs(MSXML2::IXMLDOMNodePtr pParentNode, MSXML2::IXMLDOMNodePtr pNode, int nLevel)
{
HRESULT hr = S_OK;
MSXML2::IXMLDOMDocument2Ptr pDoc = NULL;
MSXML2::IXMLDOMTextPtr pTabsText = NULL;
MSXML2::IXMLDOMNodePtr pTabsNode = NULL;
MSXML2::IXMLDOMElementPtr pElement = NULL;
CString strText(_T("")), strTabs(_T(""));
CComBSTR bstrText;
if (nLevel < 0
|| pParentNode == NULL) return NULL;
if(pNode == NULL)nLevel = 0;
for (int i=0; i<nLevel; i++)
{
strTabs += _T("\t");
}
strText.Format(_T("%s%s"), _T("\r\n"), (LPCTSTR)strTabs);
bstrText = _bstr_t(strText).GetBSTR();
try
{
pDoc = pParentNode->GetownerDocument();
if (pDoc == NULL) return NULL;
pTabsText = pDoc->createTextNode((LPCTSTR)strText);
if (pTabsText == NULL) return NULL;
CComVariant varNode = pNode.GetInterfacePtr();
pTabsNode = pParentNode->insertBefore(pTabsText, varNode);
//hr = pDoc->raw_createTextNode(bstrText.m_str, &pTabsText);
//if (FAILED(hr) || pTabsText == NULL) return NULL;
//pElement = pTabsText;
//pTabsNode = pParentNode->appendChild(pElement);
//pTabsNode = pDoc->createTextNode((LPCTSTR)strText);
//if (pTabsNode == NULL) return NULL;
//pNode = pNode->appendChild(pTabsNode);
}
catch(_com_error &e)
{
CString str;
str.Format(_T("创建xml节点发生异常。\r\nComError:\r\n%s")
, e.ErrorMessage());
::MessageBox(NULL,str, g_sAppTitle, MB_OK|MB_ICONERROR);
return NULL;
}
catch(...)
{
return NULL;
}
return pTabsNode;
}
开发者ID:cugxiangzhenwei,项目名称:WorkPlatForm,代码行数:56,代码来源:XmlBase.cpp
示例3: SetNameSpace
BOOL CXmlBase::SetNameSpace(MSXML2::IXMLDOMDocument2Ptr& pDoc, LPCTSTR lpszNameSpace)
{
HRESULT hr = S_OK;
if (lpszNameSpace == NULL
|| pDoc == NULL) return FALSE;
hr = pDoc->setProperty("SelectionLanguage", "XPath");
if (FAILED(hr)) return FALSE;
hr = pDoc->setProperty("SelectionNamespaces", lpszNameSpace);
if (FAILED(hr)) return FALSE;
return TRUE;
}
开发者ID:cugxiangzhenwei,项目名称:WorkPlatForm,代码行数:12,代码来源:XmlBase.cpp
示例4:
MSXML2::IXMLDOMDocument2Ptr CXmlBase::CreateXmlDocPtr(void)
{
::CoInitialize(NULL);
MSXML2::IXMLDOMDocument2Ptr pDoc = NULL;
HRESULT hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument40));
if (FAILED(hr))
{
return NULL;
}
pDoc->async = VARIANT_FALSE; //加载方式为“同步”
pDoc->validateOnParse = VARIANT_FALSE; //文档结构有错误时,停止解析。
//pDoc->preserveWhiteSpace = VARIANT_TRUE;
return pDoc;
}
开发者ID:cugxiangzhenwei,项目名称:WorkPlatForm,代码行数:15,代码来源:XmlBase.cpp
示例5: WordEditorInsertActiveElement
void CWordManager::WordEditorInsertActiveElement(void)
{
CElementManager & em = ((CReportAsistentApp *) AfxGetApp())->m_pGeneralManager->ElementManager;
LPCTSTR strElementName = getLastElementName();
//load element
int element_index = em.ElementIdFromName(strElementName);
MSXML2::IXMLDOMElementPtr active_element =
em.CreateEmptyElement(element_index);
//load document
MSXML2::IXMLDOMDocument2Ptr doc;
doc.CreateInstance(_T("Msxml2.DOMDocument"));
em.LoadSkeletonDTD((MSXML2::IXMLDOMDocumentPtr &) doc);
//insert element to chapter and document
doc->documentElement->
appendChild(em.CreateEmptyElement(ELID_CHAPTER))->
appendChild(active_element);
//configure by dialog
if (CSkeletonDoc::EditActiveElement(active_element))
{
//transform and generate
CAElTransform transform(active_element);
transform.DoAllTransnformations();
#ifdef _DEBUG
MSXML2::IXMLDOMParseErrorPtr err = doc->validate();
if (err->errorCode != S_OK)
{
AfxMessageBox(err->reason);
AfxMessageBox(active_element->selectSingleNode("output")->xml);
}
#endif
GenerateXMLStringToWordEditor(active_element->xml);
}
active_element.Release();
doc.Release();
}
开发者ID:BackupTheBerlios,项目名称:reportasistent-svn,代码行数:48,代码来源:WordManager.cpp
示例6: setupXMLParser
MSXML2::IXMLDOMDocument2Ptr setupXMLParser(char *path)
{
HRESULT hr;
MSXML2::IXMLDOMDocument2Ptr xmlDoc;
hr = CoInitialize(NULL);
hr = xmlDoc.CreateInstance(__uuidof(MSXML2::DOMDocument60), NULL, CLSCTX_INPROC_SERVER);
if (FAILED(hr)) return NULL;
if (xmlDoc->load(path) != VARIANT_TRUE) return NULL;
hr = xmlDoc->setProperty("SelectionNamespaces", "xmlns:r='http://www.collada.org/2005/11/COLLADASchema'");
hr = xmlDoc->setProperty("SelectionLanguage", "XPath");
return xmlDoc;
}
开发者ID:alexkokh,项目名称:DAEReader,代码行数:16,代码来源:DAEReader.cpp
示例7: GetNodePtr
//取得指定xpath的节点
MSXML2::IXMLDOMNodePtr CXmlBase::GetNodePtr(LPCTSTR lpszXPath
, MSXML2::IXMLDOMDocument2Ptr pDoc)
{
if (pDoc == NULL || lpszXPath == NULL) return NULL;
CComBSTR bstrText = _bstr_t(lpszXPath).GetBSTR();
return pDoc->selectSingleNode(bstrText.m_str);
}
开发者ID:cugxiangzhenwei,项目名称:WorkPlatForm,代码行数:8,代码来源:XmlBase.cpp
示例8: SetNodeValue
//设置指定xpath的节点值
BOOL CXmlBase::SetNodeValue(LPCTSTR lpszValue, LPCTSTR lpszXPath
, MSXML2::IXMLDOMDocument2Ptr pDoc)
{
if (pDoc == NULL || lpszXPath == NULL) return FALSE;
MSXML2::IXMLDOMNodeListPtr pNodeList = pDoc->selectNodes(lpszXPath);
long lCnt = pNodeList->Getlength();
if (lCnt == 0) return FALSE;
MSXML2::IXMLDOMNodePtr pNode = pNodeList->Getitem(0);
return SetNodeValue(lpszValue, pNode);
}
开发者ID:cugxiangzhenwei,项目名称:WorkPlatForm,代码行数:11,代码来源:XmlBase.cpp
示例9: readGeometry
void readGeometry(dae_reader_t *reader, MSXML2::IXMLDOMDocument2Ptr xmlDoc)
{
MSXML2::IXMLDOMNodeListPtr nodeList;
nodeList = xmlDoc->selectNodes("/r:COLLADA/r:library_geometries/r:geometry");
int count = nodeList->length;
for (int i = 0; i < count; i++)
{
MSXML2::IXMLDOMNodePtr node = nodeList->Getitem(i);
readMesh(reader, node);
}
}
开发者ID:alexkokh,项目名称:DAEReader,代码行数:12,代码来源:DAEReader.cpp
示例10: LoadShootSolutionSector
void CShootManagerSys::LoadShootSolutionSector(int iSector, LPCTSTR szFilename)
{
if(iSector >= m_ShootSolutionSectorArray.Num()) return;
int i;
MSXML2::IXMLDOMDocument2Ptr pDoc;
pDoc.CreateInstance(__uuidof(DOMDocument40));
pDoc->load((_variant_t)szFilename);
// 성공한 슛부터 로드한다.
MSXML2::IXMLDOMNodeListPtr pNodeListSuccess = pDoc->selectNodes(L"root/success");
for(i=0; i<pNodeListSuccess->Getlength(); i++)
{
MSXML2::IXMLDOMNodePtr pNodeSuccess = pNodeListSuccess->Getitem(i);
CShootSolution Solution;
Solution.Create(pNodeSuccess, true, this);
m_ShootSolutionSectorArray[iSector].first.push_back(Solution);
}
MSXML2::IXMLDOMNodeListPtr pNodeListFail = pDoc->selectNodes(L"root/fail");
for(i=0; i<pNodeListFail->Getlength(); i++)
{
MSXML2::IXMLDOMNodePtr pNodeFail = pNodeListFail->Getitem(i);
CShootSolution Solution;
Solution.Create(pNodeFail, false, this);
m_ShootSolutionSectorArray[iSector].second.push_back(Solution);
}
pDoc.Release();
}
开发者ID:RaoMiao,项目名称:freestyle,代码行数:33,代码来源:ShootManagerSys.cpp
示例11: CreateRootNode
MSXML2::IXMLDOMNodePtr CXmlBase::CreateRootNode(MSXML2::IXMLDOMDocument2Ptr pDoc
, LPCTSTR lpszRootText)
{
HRESULT hr = S_OK;
MSXML2::IXMLDOMElementPtr pElement = NULL;
MSXML2::IXMLDOMNodePtr pNode = NULL;
CComBSTR bstrRootText = _bstr_t("root").GetBSTR();
if (pDoc == NULL) return NULL;
if (lpszRootText != NULL)
bstrRootText = lpszRootText;
if (bstrRootText.Length() == 0) return NULL;
try
{
//hr = pDoc->raw_createElement(bstrRootText.m_str, &pElement);
//if (FAILED(hr) || pElement == NULL) return NULL;
//pNode = pElement;
pNode = pDoc->createNode(NODE_ELEMENT, bstrRootText.m_str, _T(""));
if (pNode == NULL) return NULL;
//hr = pDoc->raw_appendChild(pNode, NULL);
//if (FAILED(hr)) return NULL;
pNode = pDoc->appendChild(pNode);
}
catch(_com_error &e)
{
CString str;
str.Format(_T("创建xml根节点发生异常。\r\nComError:\r\n%s")
, e.ErrorMessage());
::MessageBox( NULL, str, g_sAppTitle, MB_OK|MB_ICONERROR);
return NULL;
}
catch(...)
{
return NULL;
}
return pNode;
}
开发者ID:cugxiangzhenwei,项目名称:WorkPlatForm,代码行数:40,代码来源:XmlBase.cpp
示例12: InsertNode
MSXML2::IXMLDOMNodePtr CXmlBase::InsertNode( MSXML2::IXMLDOMNodePtr pParentNode , MSXML2::IXMLDOMNodePtr pNodeBack , LPCTSTR lpszNodeText )
{
HRESULT hr = S_OK;
MSXML2::IXMLDOMDocument2Ptr pDoc = NULL;
MSXML2::IXMLDOMElementPtr pElement = NULL;
MSXML2::IXMLDOMNodePtr pNode = NULL;
CComBSTR bstrNodeText = _bstr_t("node").GetBSTR();
if (pParentNode == NULL
|| lpszNodeText == NULL) return NULL;
bstrNodeText = lpszNodeText;
if (bstrNodeText.Length() == 0) return NULL;
try
{
pDoc = pParentNode->GetownerDocument();
if (pDoc == NULL) return NULL;
//hr = pDoc->raw_createElement(bstrNodeText.m_str, &pElement);
//if (FAILED(hr) || pElement == NULL) return NULL;
pNode = pDoc->createNode(NODE_ELEMENT, bstrNodeText.m_str, _T(""));
if (pNode == NULL) return NULL;
CComVariant varNode = pNodeBack.GetInterfacePtr();
pNode = pParentNode->insertBefore(pNode, varNode);
}
catch(_com_error &e)
{
CString str;
str.Format(_T("插入xml节点发生异常。\r\nComError:\r\n%s")
, e.ErrorMessage());
::MessageBox(NULL,str, g_sAppTitle, MB_OK|MB_ICONERROR);
return NULL;
}
catch(...)
{
return NULL;
}
return pNode;
}
开发者ID:cugxiangzhenwei,项目名称:WorkPlatForm,代码行数:39,代码来源:XmlBase.cpp
示例13: CreateXmlTitle
MSXML2::IXMLDOMNodePtr CXmlBase::CreateXmlTitle(MSXML2::IXMLDOMDocument2Ptr pDoc)
{
MSXML2::IXMLDOMProcessingInstructionPtr pi = NULL;
MSXML2::IXMLDOMNodePtr pNode = NULL;
if (pDoc == NULL) return NULL;
try
{
pi = pDoc->createProcessingInstruction(_T("xml")
, _T("version=\"1.0\" encoding=\"UTF-8\""));
if (pi == NULL) return NULL;
pNode = pi;
if (NULL == (pNode = pDoc->appendChild(pNode)))
{
pi.Release();
pNode.Release();
return NULL;
}
pi.Release();
//pNode.Release();
}
catch(_com_error &e)
{
CString str;
str.Format(_T("创建xml头发生异常。\r\nComError:\r\n%s")
, e.ErrorMessage());
::MessageBox( NULL,str, g_sAppTitle, MB_OK|MB_ICONERROR);
return NULL;
}
catch(...)
{
return NULL;
}
return pNode;
}
开发者ID:cugxiangzhenwei,项目名称:WorkPlatForm,代码行数:36,代码来源:XmlBase.cpp
示例14: GetNodeListPtr
MSXML2::IXMLDOMNodeListPtr CXmlBase::GetNodeListPtr(LPCTSTR lpszXPath
, MSXML2::IXMLDOMDocument2Ptr pDoc)
{
MSXML2::IXMLDOMNodeListPtr pNodeList;
CComBSTR bstrText;
if (lpszXPath == NULL)
{
return NULL;
}
if (pDoc == NULL)
{
return NULL;
}
bstrText = _bstr_t(lpszXPath).GetBSTR();
pNodeList = pDoc->selectNodes(bstrText.m_str);
return pNodeList;
}
开发者ID:cugxiangzhenwei,项目名称:WorkPlatForm,代码行数:18,代码来源:XmlBase.cpp
示例15: getAxisOrientation
void getAxisOrientation(dae_reader_t *reader, MSXML2::IXMLDOMDocument2Ptr xmlDoc)
{
MSXML2::IXMLDOMNodePtr node = xmlDoc->selectSingleNode("/r:COLLADA/r:asset/r:up_axis");
reader->x = 0;
reader->y = 1;
reader->z = 2;
if (node != NULL)
{
string orientation = node->text;
if (orientation[0] == 'Y')
{
reader->z = 1;
reader->y = 2;
}
}
}
开发者ID:alexkokh,项目名称:DAEReader,代码行数:19,代码来源:DAEReader.cpp
示例16: Exception
MSXML2::IXMLDOMDocument2Ptr ValidateConfigXML()
{
wchar_t moduleFileName[MAX_PATH] = {0};
if(0 == GetModuleFileNameW(GetModuleHandle(_T("TestConnectSdk.dll")/*"TestConnectAPITool.dll"*/), moduleFileName, MAX_PATH))
throw Workshare::Exception(_T("Failed to obtain the filename of the current module"));
CStdStringW schemaUrl;
schemaUrl.Format(L"res://%s/ConnectAPITestTool.xsd", moduleFileName);
MSXML2::IXMLDOMDocument2Ptr spConfigSchema;
HRESULT hr = spConfigSchema.CreateInstance(__uuidof(MSXML2::DOMDocument60));
if(FAILED(hr))
throw Workshare::ClassNotFoundException(_T("Msxml2.DOMDocument.6.0"), _T("Failed to create an XML dom object."));
if(VARIANT_TRUE != spConfigSchema->load(schemaUrl.c_str()))
ThrowMSXMLParseError(spConfigSchema->parseError, _T("Failed to load 'ConnectAPITestTool.xsd'."));
MSXML2::IXMLDOMSchemaCollection2Ptr spSchemaCollection;
hr = spSchemaCollection.CreateInstance(__uuidof(MSXML2::XMLSchemaCache60));
if(FAILED(hr))
throw Workshare::ClassNotFoundException(_T("Msxml2.XMLSchemaCache.6.0"), _T("Failed to create an XML schema collection."));
hr = spSchemaCollection->add(L"", spConfigSchema.GetInterfacePtr());
if(S_OK != hr)
throw Workshare::Exception(_T("Failed to add 'ConnectAPITestTool.xsd' to schema collection."));
MSXML2::IXMLDOMDocument2Ptr spConfigXML;
hr = spConfigXML.CreateInstance(__uuidof(MSXML2::DOMDocument60));
if(FAILED(hr))
throw Workshare::ClassNotFoundException(_T("Msxml2.DOMDocument.6.0"), _T("Failed to create an XML dom object."));
spConfigXML->async = VARIANT_FALSE;
spConfigXML->resolveExternals = VARIANT_FALSE;
spConfigXML->validateOnParse = VARIANT_FALSE;
spConfigXML->schemas = spSchemaCollection.GetInterfacePtr();
if(VARIANT_TRUE != spConfigXML->load(L"ConnectAPITestTool.xml"))
ThrowMSXMLParseError(spConfigXML->parseError, _T("Failed to load 'ConnectAPITestTool.xml'."));
MSXML2::IXMLDOMParseErrorPtr spError = spConfigXML->validate();
if(S_OK != spError->errorCode)
ThrowMSXMLParseError(spError, _T("Failed to validate 'ConnectAPITestTool.xml'."));
return spConfigXML;
}
开发者ID:killbug2004,项目名称:WSProf,代码行数:40,代码来源:ConfigReader.cpp
示例17: GetRootNodePtr
MSXML2::IXMLDOMNodePtr CXmlBase::GetRootNodePtr(MSXML2::IXMLDOMDocument2Ptr pDoc)
{
MSXML2::IXMLDOMElementPtr pRoot;
MSXML2::IXMLDOMNodePtr pNode;
HRESULT hr = NULL;
if (pDoc == NULL)
{
//WRITELOG("END, pDoc为空"); return NULL;
}
hr = pDoc->get_documentElement(&pRoot);
if (FAILED(hr) || NULL == pRoot)
{
// WRITELOG("END, pDoc取得根节点失败");
return NULL;
}
pNode = pRoot;
return pNode;
}
开发者ID:cugxiangzhenwei,项目名称:WorkPlatForm,代码行数:20,代码来源:XmlBase.cpp
示例18: SetAttrValue
//设置指定xpath的节点属性
BOOL CXmlBase::SetAttrValue(LPCTSTR lpszValue, LPCTSTR lpszAttrName, LPCTSTR lpszXPath
, MSXML2::IXMLDOMDocument2Ptr pDoc)
{
MSXML2::IXMLDOMNodePtr pNode = NULL;
MSXML2::IXMLDOMNodeListPtr pNodeList = NULL;
long lCnt = 0;
if (pDoc == NULL || lpszXPath == NULL) return FALSE;
try
{
pNodeList = pDoc->selectNodes(lpszXPath);
lCnt = pNodeList->Getlength();
if (lCnt == 0) return FALSE;
pNode = pNodeList->Getitem(0);
}
catch (_com_error e)
{
::MessageBox(NULL, e.ErrorMessage(), NULL, MB_OK|MB_ICONERROR);
return FALSE;
}
return SetAttrValue(lpszValue, lpszAttrName, pNode);
}
开发者ID:cugxiangzhenwei,项目名称:WorkPlatForm,代码行数:22,代码来源:XmlBase.cpp
示例19: LoadShootSolutionSet
void CShootManagerSys::LoadShootSolutionSet(SFullName nameFile)
{
int i;
MSXML2::IXMLDOMDocument2Ptr pDoc = NULL;
DFileGPack packFile;
packFile.Open(nameFile);
CFileSys::LoadBinaryXML(pDoc, packFile.GetFile(), packFile.GetSize());
packFile.Close();
// 시뮬레이터에서 사용하는 거리 범위들을 로드한다.
MSXML2::IXMLDOMNodeListPtr pNodeListDistance;
MSXML2::IXMLDOMNodePtr pNodeDistance;
float fDistance;
pNodeListDistance = pDoc->selectNodes(L"root/distance_range/distance");
for(i=0; i<pNodeListDistance->Getlength(); i++)
{
pNodeDistance = pNodeListDistance->Getitem(i);
_bstr_t distance = pNodeDistance->GetnodeTypedValue();
sscanf((LPCTSTR)distance, "%f", &fDistance);
m_DistanceList.push_back(fDistance);
}
// 시뮬레이터에서 사용하는 각도 범위들을 로드한다.
// 여기서 각도는 (골대 - 슈터) 와 양의 z 축 사이의 각도를 말한다.
// degree 로 저장되어 있으므로 Angle 로 변환시킨다.
MSXML2::IXMLDOMNodeListPtr pNodeListAngle;
MSXML2::IXMLDOMNodePtr pNodeAngle;
float fDegree;
int iAngle;
pNodeListAngle = pDoc->selectNodes(L"root/angle_range/degree");
for(i=0; i<pNodeListAngle->Getlength(); i++)
{
pNodeAngle = pNodeListAngle->Getitem(i);
_bstr_t degree = pNodeAngle->GetnodeTypedValue();
sscanf((LPCTSTR)degree, "%f", &fDegree);
iAngle = Degree2Angle(fDegree); // degree 에서 Angle 로 변환한다.
m_AngleList.push_back(iAngle);
}
// 전체 섹터 개수를 계산하고 여기에 맞게 메모리를 생성한다.
int iNumSector = m_DistanceList.size() * (m_AngleList.size() + 1) + 6;
for(i=0; i<iNumSector; i++)
{
ShootSolutionSector *pShootSolutionSector = new (m_ShootSolutionSectorArray) ShootSolutionSector;
}
// 각 섹터별로 섹터안의 Shoot Solution 들을 로드한다.
MSXML2::IXMLDOMNodeListPtr pNodeListSector = pDoc->selectNodes(L"root/sector");
MSXML2::IXMLDOMNodePtr pNodeSector;
MSXML2::IXMLDOMNodePtr pNodeIndex;
MSXML2::IXMLDOMNodePtr pNodePath;
for(i=0; i<pNodeListSector->Getlength(); i++)
{
pNodeSector = pNodeListSector->Getitem(i);
pNodeIndex = pNodeSector->selectSingleNode(L"index");
pNodePath = pNodeSector->selectSingleNode(L"path");
_bstr_t index = pNodeIndex->GetnodeTypedValue();
_bstr_t path = pNodePath->GetnodeTypedValue();
SString strName = (LPCTSTR)path;
DCutPath(strName);
DCutFileExt(strName);
strName[strName.Len()-3] = 'b';
int iIndex = atoi((LPCTSTR)index);
LoadShootSolutionSector(iIndex, SFullName("simulator",strName));
// int iIndex = atoi((LPCTSTR)index);
// SString sFilePath = szFilename;
// sFilePath = DGetPathOnly(sFilePath);
// sFilePath += "\\";
// sFilePath += (LPCTSTR)path;
// sFilePath.Format("%s\\%s\\%s", g_szCurrentPath, g_szSimulatorPath, (LPCTSTR)path);
// LoadShootSolutionSector(iIndex, (LPCTSTR)sFilePath);
}
CFileSys::UnloadXML(pDoc);
}
开发者ID:RaoMiao,项目名称:freestyle,代码行数:82,代码来源:ShootManagerSys.cpp
示例20: FAILED
CRDPConfig::CRDPConfig(const char *configFile)
{
// Local variables and initializations
HRESULT hResult = S_OK;
char cNodeType;
// set the defaults
mConfigError = false; // TODO - check for config error - report in Capture Fail
mDrive = "C:";
mRoot = "/DATA"; // NOTE: don't use backslash in file names
mInfoDrive = "C:";
mInfoRoot = "/xampp/htdocs/RDP_Data";
mInfoFile = "messages.log";
mMsgLogDrive = "C:";
mMsgLogRoot = "/xampp/htdocs/RDP_Data";
mMsgLogFile = "messages.log";
mTestDataDrive = "C:";
mTestDataRoot = "/DATA/TestData";
//mTestDataEnabled = false;
mDebugLevel = -1;
mMSSListenerPort = 65000;
mDrive = "C:";
mRoot = "\\DATA\\";
mLeadInSize = 21;
mDataBlockSize = 150;
mLeadOutSize = 0;
mNoOfCards = 2;
mNoOfPortsPerCard = 4;
// Read the XML file and update the config values
// Initialize the COM library
hResult = CoInitialize(NULL);
if (FAILED(hResult))
{
MsgLog::Error("RDPConfig module - Failed to initialize COM environment");
return;
}
// Main try block for MSXML DOM operations
try
{
// MSXML COM smart pointers
// Use the Dccument2 class to enable schema validation
MSXML2::IXMLDOMDocument2Ptr spDocInput;
MSXML2::IXMLDOMNodePtr spNodeTemp;
MSXML2::IXMLDOMElementPtr spElemTemp;
MSXML2::IXMLDOMAttributePtr spAttrTemp;
MSXML2::IXMLDOMNodeListPtr spNLChildren;
// Create the COM DOM Document object
hResult = spDocInput.CreateInstance(__uuidof(DOMDocument));
if FAILED(hResult)
{
MsgLog::Error("RDPConfig module - Failed to create Document instance");
return;
}
// Load the document synchronously
spDocInput->async = VARIANT_FALSE;
// Load input document. MSXML default for load is to
// validate while parsing.
hResult = spDocInput->load(configFile);
// Check for load, parse, or validation errors
if( hResult != VARIANT_TRUE)
{
MsgLog::Error("Parsing error reading config file %s", configFile);
return;
} else {
MsgLog::Info("Config file %s opened successfully", configFile);
}
// Get document element
spElemTemp = spDocInput->documentElement;
if (Debug::Enabled(Debug::CONFIG))
std::cout<<std::endl<<"Document Element name: "<<spElemTemp->nodeName<<std::endl;
// Walk through children of document element
// and process according to type
spNodeTemp = spElemTemp->firstChild;
// TODO more checking needed for the config file
while (spNodeTemp != NULL)
{
// Process node depending on type
cNodeType = spNodeTemp->nodeType;
switch (cNodeType)
{
// Comment Node
case NODE_COMMENT:
if (Debug::Enabled(Debug::CONFIG))
std::cout<<"Comment Node:" << std::endl << " "<<_bstr_t(spNodeTemp->nodeValue)<<std::endl;
break;
// Element Node
case NODE_ELEMENT:
{
//.........这里部分代码省略.........
开发者ID:elementalit,项目名称:FibreData,代码行数:101,代码来源:RDPConfig.cpp
注:本文中的msxml2::IXMLDOMDocument2Ptr类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论