本文整理汇总了C++中msxml2::IXMLDOMDocument2Ptr::selectNodes方法的典型用法代码示例。如果您正苦于以下问题:C++ IXMLDOMDocument2Ptr::selectNodes方法的具体用法?C++ IXMLDOMDocument2Ptr::selectNodes怎么用?C++ IXMLDOMDocument2Ptr::selectNodes使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类msxml2::IXMLDOMDocument2Ptr
的用法示例。
在下文中一共展示了IXMLDOMDocument2Ptr::selectNodes方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: 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();
}
示例2: 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);
}
示例3: 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);
}
}
示例4: 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;
}
示例5: 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);
}
示例6: 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);
}
示例7: LoadContent
bool Engine::LoadContent()
{
// Setup our SpriteBatch.
m_pSpriteBatch = new DirectX::SpriteBatch(d3dContext_);
m_pFont->Initialize(d3dDevice_, std::wstring(L"Calibri18.spritefont"));
m_pSprite->Initialize(d3dDevice_, std::wstring(L"Test.dds"), 10.0f, 10.0f);
m_textToDisplay = Text();
m_textToDisplay.Initialize(std::wstring(L"Sarah"), DirectX::SimpleMath::Vector2(200.0f, 200.0f));
try
{
MSXML2::IXMLDOMDocument2Ptr xmlDoc;
HRESULT hr = xmlDoc.CreateInstance(__uuidof(MSXML2::DOMDocument60), NULL, CLSCTX_INPROC_SERVER);
teamStats.InitializeTeam("Players.xml");
// Make sure the file was loaded correctly before trying to load the players.
if (xmlDoc->load("Players.xml") == VARIANT_TRUE)
{
//xmlDoc->setProperty("SelectionLanguage", "XPath");
//teamStats.LoadPlayers(xmlDoc);
}
if (xmlDoc->load("input.xml") != VARIANT_TRUE)
{
DXTRACE_MSG("Unable to load input.xml\n");
xmlDoc->save("input.xml");
//xmlDoc->
}
else
{
DXTRACE_MSG("XML was successfully loaded \n");
xmlDoc->setProperty("SelectionLanguage", "XPath");
MSXML2::IXMLDOMNodeListPtr wheels = xmlDoc->selectNodes("/Car/Wheels/*");
DXTRACE_MSG("Car has %u wheels\n", wheels->Getlength());
DXTRACE_MSG(wheels->Getitem(0)->text);
//ptr->
MSXML2::IXMLDOMNodePtr node;
node = xmlDoc->createNode(MSXML2::NODE_ELEMENT, ("Engine"), (""));
node->text = ("Engine 1.0");
xmlDoc->documentElement->appendChild(node);
hr = xmlDoc->save("output.xml");
if (SUCCEEDED(hr))
{
DXTRACE_MSG("output.xml successfully saved\n");
}
}
}
catch (_com_error &e)
{
DXTRACE_MSG(e.ErrorMessage());
}
return true;
}