本文整理汇总了C++中msxml2::IXMLDOMNode类的典型用法代码示例。如果您正苦于以下问题:C++ IXMLDOMNode类的具体用法?C++ IXMLDOMNode怎么用?C++ IXMLDOMNode使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了IXMLDOMNode类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: SysAllocString
TEST_FIXTURE(XmlFixture, CreateChild2)
{
MSXML2::IXMLDOMNode *node = 0;
HRESULT hr = XMLHelper::CreateChild(root, &node, _T("test"));
CHECK_OK(hr);
CHECK(node);
node->Release();
node = 0;
BSTR query = SysAllocString(_T("//test"));
MSXML2::IXMLDOMNodeList *nodeList = 0;
hr = doc->selectNodes(query, &nodeList);
SysFreeString(query);
CHECK_OK(hr);
CHECK(nodeList);
long length = 0;
hr = nodeList->get_length(&length);
CHECK_OK(hr);
CHECK_EQUAL(1, length);
hr = nodeList->nextNode(&node);
CHECK_OK(hr);
CHECK(node);
BSTR name = 0;
hr = node->get_nodeName(&name);
CHECK_OK(hr);
CHECK_EQUAL(0, _tcscmp(name, _T("test")));
SysFreeString(name);
}
开发者ID:jaylauffer,项目名称:loadngo,代码行数:27,代码来源:XMLHelperTests.cpp
示例2: RealizeRecurrences
//The big issue here will be the whether the input time is local or UTC, there could be problems
//between users in different timezones and the proper realization of template...
//TODO: review code to ensure template is realized properly
void RecurrenceManager::RealizeRecurrences(unsigned __int64 date)
{
if(date > m_pDataManager->GetDayManagerInstance()->GetToday() - 1)
{
SYSTEMTIME st = ModelUtils::I64ToSystemTime(date);
StringBuffer sb(_T("//recurrence[schedule/@"));
sb.append(days[st.wDayOfWeek]);
sb.append(_T("='true']"));
BSTR xpath = SysAllocString(sb);
MSXML2::IXMLDOMNodeList *pList = 0;
HRESULT hr = m_pXMLDoc->selectNodes(xpath, &pList);
if(hr == S_OK && pList)
{
MSXML2::IXMLDOMNode *pNode = 0;
while((hr = pList->nextNode(&pNode)) == S_OK)
{
RealizeRecurrence(pNode, st);
pNode->Release();
}
pList->Release();
}
}
}
开发者ID:jaylauffer,项目名称:loadngo,代码行数:28,代码来源:RecurrenceManager.cpp
示例3: GetAttribute
HRESULT XMLHelper::GetAttribute(MSXML2::IXMLDOMNode *pNode, const TCHAR *pAttr, int *pVal)
{
MSXML2::IXMLDOMNamedNodeMap *pAttrMap = 0;
HRESULT hr = pNode->get_attributes(&pAttrMap);
if(hr == S_OK)
{
BSTR attr = SysAllocString(pAttr);
MSXML2::IXMLDOMNode *pAttrNode = 0;
hr = pAttrMap->getNamedItem(attr, &pAttrNode);
SysFreeString(attr);
if(hr == S_OK && pAttrNode)
{
VARIANTARG varg;
VariantInit(&varg);
hr = pAttrNode->get_nodeValue(&varg);
if(hr == S_OK && varg.vt == VT_BSTR)
{
*pVal = varg.bstrVal? _wtoi(varg.bstrVal): 0;
SysFreeString(varg.bstrVal);
}
pAttrNode->Release();
}
pAttrMap->Release();
}
return hr;
}
开发者ID:jaylauffer,项目名称:loadngo,代码行数:26,代码来源:XMLHelper.cpp
示例4: CreateSchedule
void RecurrenceManager::CreateSchedule(MSXML2::IXMLDOMNode *pRecurrence, bool sunday, bool monday, bool tuesday, bool wednesday, bool thursday, bool friday, bool saturday,
unsigned short starthour, unsigned short startminute, int duration)
{
MSXML2::IXMLDOMNode *pNode = 0;
HRESULT hr = XMLHelper::CreateChild(pRecurrence, &pNode, _T("schedule"));
if(S_OK == hr && pNode)
{
if(sunday)XMLHelper::SetAttribute(pNode, days[0], _T("true"));
if(monday)XMLHelper::SetAttribute(pNode, days[1], _T("true"));
if(tuesday)XMLHelper::SetAttribute(pNode, days[2], _T("true"));
if(wednesday)XMLHelper::SetAttribute(pNode, days[3], _T("true"));
if(thursday)XMLHelper::SetAttribute(pNode, days[4], _T("true"));
if(friday)XMLHelper::SetAttribute(pNode, days[5], _T("true"));
if(saturday)XMLHelper::SetAttribute(pNode, days[6], _T("true"));
StringBuffer sb(16);
sb.appendInt(starthour);
XMLHelper::SetAttribute(pNode, _T("starthour"), sb);
sb.flush();
sb.appendInt(startminute);
XMLHelper::SetAttribute(pNode, _T("startminute"), sb);
sb.flush();
sb.appendInt(duration);
XMLHelper::SetAttribute(pNode, _T("duration"), sb);
pNode->Release();
}
}
开发者ID:jaylauffer,项目名称:loadngo,代码行数:26,代码来源:RecurrenceManager.cpp
示例5: SysAllocString
Task::TaskSet * CTaskModel::GetChildren(Task::TaskSet *pSet)
{
//if(!m_pTaskManager)return pSet;
MSXML2::IXMLDOMNodeList *pNodeList = 0;
BSTR xpath = SysAllocString(_T("./task"));
HRESULT hr = m_pNode->selectNodes(xpath, &pNodeList);
SysFreeString(xpath);
MSXML2::IXMLDOMNode *pNode = 0;
if(pNodeList)
{
while((hr = pNodeList->nextNode(&pNode)) == S_OK)
{
unsigned __int64 childID = 0;
XMLHelper::GetAttributeI64(pNode, TASKID, &childID);
Task *pTask = new(childID) CTaskModel(pNode);
if(pTask)
{
pSet->Add(*pTask);
}
pNode->Release();
pNode = 0;
}
}
pNodeList->Release();
pNodeList = 0;
return pSet;
}
开发者ID:jaylauffer,项目名称:loadngo,代码行数:27,代码来源:TaskModel.cpp
示例6: CreateRecurrence
void RecurrenceManager::CreateRecurrence(const TCHAR *type, const TCHAR *title, const TCHAR *desc, unsigned __int64 parentId,
bool sunday, bool monday, bool tuesday, bool wednesday, bool thursday, bool friday, bool saturday,
unsigned short starthour, unsigned short startminute, int duration)
{
MSXML2::IXMLDOMNode *pRecurrence = 0;
HRESULT hr = XMLHelper::CreateChild(GetRecurrencesNode(), &pRecurrence, _T("recurrence"));
if(S_OK == hr && pRecurrence)
{
XMLHelper::SetAttribute(pRecurrence, _T("type"), type);
XMLHelper::SetAttributeI64(pRecurrence, _T("recurrenceid"), ModelUtils::GenerateID());
XMLHelper::SetAttributeI64(pRecurrence, _T("parentid"), parentId);
MSXML2::IXMLDOMNode *pNode = 0;
hr = XMLHelper::CreateChild(pRecurrence, &pNode, _T("title"), title);
if(S_OK == hr && pNode)
{
pNode->Release();
}
pNode = 0;
hr = XMLHelper::CreateChild(pRecurrence, &pNode, _T("desc"), desc);
if(S_OK == hr && pNode)
{
pNode->Release();
}
CreateSchedule(pRecurrence, sunday, monday, tuesday, wednesday, thursday, friday, saturday, starthour, startminute, duration);
}
}
开发者ID:jaylauffer,项目名称:loadngo,代码行数:26,代码来源:RecurrenceManager.cpp
示例7: Parse
void XmlParser::Parse(NodeCallback callback, void *data)
{
MSXML2::IXMLDOMNodeListPtr NodeListPtr;
BSTR strFindText = L" ";
MSXML2::IXMLDOMNode *pIDOMNode = NULL;
BSTR bstrNodeType;
assert(m_domDocument != NULL);
NodeListPtr = m_domDocument->getElementsByTagName(strFindText);
for(int i = 0; i < NodeListPtr->length; i++)
{
if (pIDOMNode)
pIDOMNode->Release();
NodeListPtr->get_item(i, &pIDOMNode);
pIDOMNode->get_nodeTypeString(&bstrNodeType);
if (lstrcmp((LPCTSTR)bstrNodeType, (LPCTSTR)L"element") != 0)
continue;
XmlNode node;
_parseNode(pIDOMNode, node);
if (callback(node, data) == false)
break;
}
if (pIDOMNode)
pIDOMNode->Release();
}
开发者ID:Softcatala,项目名称:Catalanitzador,代码行数:32,代码来源:XmlParser.cpp
示例8: GetAllPrerequisites
//TODO: review usage of TaskIDSet, in particular the local allocation and copying of contents
Task::TaskIDSet CTaskModel::GetAllPrerequisites()
{
TaskIDSet ts;
MSXML2::IXMLDOMNodeList *pNodeList = 0;
BSTR xpath = SysAllocString(_T("ancestor-or-self::task/prerequisite"));
HRESULT hr = m_pNode->selectNodes(xpath, &pNodeList);
SysFreeString(xpath);
MSXML2::IXMLDOMNode *pNode = 0;
unsigned __int64 id = 0;
BSTR bstr = 0;
if(pNodeList)
{
while((hr = pNodeList->nextNode(&pNode)) == S_OK)
{
if(pNode)
{
hr = XMLHelper::GetAttribute(pNode, _T("taskid"), &bstr);
if(hr == S_OK)
{
id = ModelUtils::fromHexString(bstr, wcslen(bstr));
ts.Add(id);
id = 0;
SysFreeString(bstr);
}
bstr = 0;
pNode->Release();
pNode = 0;
}
}
pNodeList->Release();
}
return ts;
}
开发者ID:jaylauffer,项目名称:loadngo,代码行数:34,代码来源:TaskModel.cpp
示例9: DeleteTimeEntry
void PlanEntryModelManager::DeleteTimeEntry(unsigned __int64 id)
{
EnterCriticalSection(&critical_section);
MSXML2::IXMLDOMNode *pNode = 0;
StringBuffer conv(32);
StringBuffer sb(_T("//timeentry[@entryid=\""));
sb.append(ModelUtils::toHexString(id, conv));
sb.append(_T("\"]"));
BSTR xpath = SysAllocString(sb);
HRESULT hr = m_pXMLDoc->selectSingleNode(xpath, &pNode);
SysFreeString(xpath);
if(hr == S_OK && pNode)
{
MSXML2::IXMLDOMNode *pOld = 0;
hr = m_pRoot->removeChild(pNode, &pOld);
if(hr == S_OK)
{
pOld->Release();
TimeEntryEvent tee(TimeEntryEvent::TIME_ENTRY_DELETE, id);
NotifyChanged(tee);
}
pNode->Release();
}
LeaveCriticalSection(&critical_section);
}
开发者ID:jaylauffer,项目名称:loadngo,代码行数:25,代码来源:PlanEntryModelManager.cpp
示例10: SysAllocString
XmlFixture::XmlFixture()
{
OleInitialize(0);
CoCreateInstance(__uuidof(MSXML2::FreeThreadedDOMDocument60), NULL,
CLSCTX_SERVER, __uuidof(MSXML2::IXMLDOMDocument2), reinterpret_cast<void **>(&doc));
BSTR prop = SysAllocString(_T("SelectionNamespaces"));
VARIANTARG varg;
VariantInit(&varg);
varg.vt = VT_BSTR;
varg.bstrVal = SysAllocString(_T("xmlns:ms='urn:schemas-microsoft-com:xslt'"));
doc->setProperty(prop, varg);
VariantInit(&varg);
varg.vt = VT_I2;
varg.iVal = MSXML2::NODE_ELEMENT;
BSTR EMPTY_STR = SysAllocString(_T(""));
BSTR rootStr = SysAllocString(_T("tasktracker"));
HRESULT hr = doc->createNode(varg, rootStr, EMPTY_STR, &root);
SysFreeString(rootStr);
SysFreeString(EMPTY_STR);
if(hr == S_OK && root)
{
MSXML2::IXMLDOMNode *pOut = 0;
hr = doc->appendChild(root, &pOut);
if(hr == S_OK && pOut)
{
pOut->Release();
pOut = 0;
}
}
}
开发者ID:jaylauffer,项目名称:loadngo,代码行数:34,代码来源:XmlFixture.cpp
示例11:
TEST_FIXTURE(XmlFixture, CreateChild)
{
MSXML2::IXMLDOMNode *node = 0;
HRESULT hr = XMLHelper::CreateChild(root, &node, _T("test"));
CHECK_OK(hr);
CHECK(node);
node->Release();
}
开发者ID:jaylauffer,项目名称:loadngo,代码行数:8,代码来源:XMLHelperTests.cpp
示例12: GetChildText
HRESULT XMLHelper::GetChildText(MSXML2::IXMLDOMNode *pNode, const TCHAR *pChild, BSTR *pBstr)
{
BSTR xpath = SysAllocString(pChild);
MSXML2::IXMLDOMNode *pChildNode = 0;
HRESULT hr = pNode->selectSingleNode(xpath, &pChildNode);
SysFreeString(xpath);
if(hr == S_OK && pChildNode)
{
hr = pChildNode->get_text(pBstr);
pChildNode->Release();
}
return hr;
}
开发者ID:jaylauffer,项目名称:loadngo,代码行数:13,代码来源:XMLHelper.cpp
示例13: AddPrerequisite
void CTaskModel::AddPrerequisite(unsigned __int64 prereq)
{
//AddPrerequisite(prereq, true);
MSXML2::IXMLDOMNode *pNode = 0;
HRESULT hr = AppendChild(&pNode, PREREQUISITE);
if(hr == S_OK && pNode)
{
StringBuffer temp(32);
XMLHelper::SetAttribute(pNode, TASKID, ModelUtils::toHexString(prereq, temp));
pNode->Release();
}
//TODO: notify?..
}
开发者ID:jaylauffer,项目名称:loadngo,代码行数:13,代码来源:TaskModel.cpp
示例14: tee
TimeEntry * PlanEntryModelManager::CreateTimeEntry(
unsigned __int64 taskID, unsigned __int64 start, unsigned __int64 stop, TCHAR *pTaskname)
{
MSXML2::IXMLDOMNode *pNode = CreateEntryNode();
TimeEntry *pEntry = new(pNode) PlanEntryModel(pNode, start, stop, taskID, m_pDataManager->GetUsername(), pTaskname);
pNode->Release();
if(pEntry)
{
TimeEntryEvent tee(TimeEntryEvent::TIME_ENTRY_ADD, pEntry->GetID(), pEntry);
NotifyChanged(tee);
}
return pEntry;
}
开发者ID:jaylauffer,项目名称:loadngo,代码行数:13,代码来源:PlanEntryModelManager.cpp
示例15: LoadXMLSettings
void CDialogSettings::LoadXMLSettings(MSXML2::IXMLDOMNamedNodeMap *pam,long lChildNodes)
{
MSXML2::IXMLDOMNode *pNode = NULL;
BSTR bstrName;
BSTR bstrValue;
for(int i = 1;i < lChildNodes;i++)
{
pam->get_item(i,&pNode);
pNode->get_nodeName(&bstrName);
pNode->get_text(&bstrValue);
bool bHandled = false;
if(m_bSavePosition)
{
if(lstrcmpi(bstrName, SETTING_POSITION_X) == 0)
{
m_ptDialog.x = NXMLSettings::DecodeIntValue(bstrValue);
bHandled = true;
}
else if(lstrcmpi(bstrName, SETTING_POSITION_Y) == 0)
{
m_ptDialog.y = NXMLSettings::DecodeIntValue(bstrValue);
bHandled = true;
}
else if(lstrcmpi(bstrName, SETTING_WIDTH) == 0)
{
m_iWidth = NXMLSettings::DecodeIntValue(bstrValue);
bHandled = true;
}
else if(lstrcmpi(bstrName, SETTING_HEIGHT) == 0)
{
m_iHeight = NXMLSettings::DecodeIntValue(bstrValue);
bHandled = true;
}
}
if(!bHandled)
{
/* Pass the node name and value to any
descendant class to handle. */
LoadExtraXMLSettings(bstrName,bstrValue);
}
}
m_bStateSaved = TRUE;
}
开发者ID:3scp8,项目名称:explorerplusplus,代码行数:49,代码来源:DialogSettings.cpp
示例16: new
TEST_FIXTURE(XmlFixture, AllocationMapCleaned)
{
MSXML2::IXMLDOMNode *taskNode = 0;
for(unsigned __int64 id = 1; id < 100; ++id)
{
HRESULT hr = XMLHelper::CreateChild(root, &taskNode, _T("task"));
CHECK_OK(hr);
CTaskModel * tm = new(id) CTaskModel(taskNode, id, 0, _T("Test"), _T("Test"), _T("Test"), 0, 0, 0, 0, 0, false, 3, TASK_STATE_OPEN);
CHECK(tm);
delete tm;
taskNode->Release();
taskNode = 0;
}
CHECK_EQUAL(0, TaskModelInternalTester::GetAllocationMapCount());
}
开发者ID:jaylauffer,项目名称:loadngo,代码行数:15,代码来源:TaskModelTests.cpp
示例17: conv
TimeEntry * PlanEntryModelManager::GetEntryFromID(unsigned __int64 id)
{
TimeEntry *pEntry = 0;
StringBuffer conv(32);
StringBuffer sb(_T("timeentry[@entryid='"));
sb.append(ModelUtils::toHexString(id, conv));
sb.append(_T("']"));
BSTR xpath = SysAllocString(sb);
MSXML2::IXMLDOMNode *pNode = 0;
HRESULT hr = m_pRoot->selectSingleNode(xpath, &pNode);
SysFreeString(xpath);
if(hr == S_OK && pNode)
{
pEntry = new(pNode) PlanEntryModel(pNode);
pNode->Release();
}
return pEntry;
}
开发者ID:jaylauffer,项目名称:loadngo,代码行数:18,代码来源:PlanEntryModelManager.cpp
示例18: SysAllocString
MSXML2::IXMLDOMNode * RecurrenceManager::GetRecurrencesNode()
{
MSXML2::IXMLDOMNode *pNode = 0;
MSXML2::IXMLDOMElement *pRoot = 0;
HRESULT hr = m_pXMLDoc->get_documentElement(&pRoot);
BSTR xpath = SysAllocString(_T("//recurrences"));
hr = m_pXMLDoc->selectSingleNode(xpath, reinterpret_cast<MSXML2::IXMLDOMNode **>(&pNode));
SysFreeString(xpath);
if(hr == S_FALSE)
{
MSXML2::IXMLDOMNode *pRootNode = 0;
pRoot->QueryInterface(IID_IXMLDOMNode, reinterpret_cast<void **>(&pRootNode));
XMLHelper::CreateChild(pRootNode, &pNode, _T("recurrences"));
pRootNode->Release();
}
pRoot->Release();
return pNode;
}
开发者ID:jaylauffer,项目名称:loadngo,代码行数:18,代码来源:RecurrenceManager.cpp
示例19: RemoveNodes
void CXmlNodeWrapper::RemoveNodes(LPCTSTR searchStr)
{
if (!IsValid())
return;
MSXML2::IXMLDOMNodeListPtr nodeList = m_xmlnode->selectNodes(searchStr);
for (int i = 0; i < nodeList->Getlength(); i++)
{
try
{
MSXML2::IXMLDOMNode* pNode = nodeList->Getitem(i).Detach();
pNode->GetparentNode()->removeChild(pNode);
}
catch (_com_error er)
{
AfxMessageBox(er.ErrorMessage());
}
}
}
开发者ID:harrysun2006,项目名称:ag_Client,代码行数:18,代码来源:XmlNodeWrapper.cpp
示例20: SetChildText
HRESULT XMLHelper::SetChildText(MSXML2::IXMLDOMNode *pNode, const TCHAR *pChild, const TCHAR *pText)
{
BSTR xpath = SysAllocString(pChild);
MSXML2::IXMLDOMNode *pChildNode = 0;
HRESULT hr = pNode->selectSingleNode(xpath, &pChildNode);
SysFreeString(xpath);
if(hr == S_OK && pChildNode) //replace existing text
{
BSTR text = SysAllocString(pText);
hr = pChildNode->put_text(text);
SysFreeString(text);
}
else if(hr == S_FALSE) //if there is no node make a new one
{
hr = CreateChild(pNode, &pChildNode, pChild, pText);
if(pChildNode)pChildNode->Release();
}
return hr;
}
开发者ID:jaylauffer,项目名称:loadngo,代码行数:19,代码来源:XMLHelper.cpp
注:本文中的msxml2::IXMLDOMNode类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论