Как получить / разобрать 2 или более только какой-то конкретный узел XML с использованием C ++.
void queryNodes()
{
HRESULT hr = S_OK;
IXMLDOMDocument *pXMLDom = NULL;
IXMLDOMNodeList *pNodes = NULL;
IXMLDOMNode *pNode = NULL;
IXMLDOMNode *pNode1 = NULL;
BSTR bstrQuery1 = NULL;
BSTR bstrQuery2 = NULL;
BSTR bstrNodeName = NULL;
BSTR bstrNodeValue = NULL;
VARIANT_BOOL varStatus;
VARIANT varFileName;
VariantInit(&varFileName);
//<siteid>123</siteid>
CHK_HR(CreateAndInitDOM(&pXMLDom));
CHK_HR(VariantFromString(L"stocks.xml", varFileName));
CHK_HR(pXMLDom->load(varFileName, &varStatus));
if (varStatus != VARIANT_TRUE)
{
CHK_HR(ReportParseError(pXMLDom, "Failed to load DOM from stocks.xml."));
}
// Query a single node.
//bstrQuery1 = SysAllocString(L"//rebootexclusiondata[2]/*");
bstrQuery1 = SysAllocString(L"//rebootexclusiondata//exclusion//");
CHK_ALLOC(bstrQuery1);
CHK_HR(pXMLDom->selectSingleNode(bstrQuery1, &pNode));
if (pNode)
{
printf("Result from selectSingleNode:\n");
CHK_HR(pNode->get_nodeName(&bstrNodeName));
CHK_HR(pNode->get_xml(&bstrNodeValue));
SysFreeString(bstrNodeName);
printf("Node, <%S>:\n", bstrNodeName);
printf("\t%S\n%S\n", bstrNodeValue);
if (0 == wcscmp(bstrNodeValue, L"<exclusion>true</exclusion>"))
{
printf("\n exe exit \n\n");
}
else
{
printf("\n go further! lets reboot the system\n\n");
}
SysFreeString(bstrNodeValue);
SAFE_RELEASE(pNode);
}
}
в этом он проверяет только один тег, т.е. исключающий тег, так же как и исключающий тег, он также должен одновременно проверять какой-то другой тег в xml.
Как мне это сделать.
Задача ещё не решена.