load(varFileName和varStatus)); if(varStatus!=变量_TRUE) { CHK_HR(ReportParseError(pXMLDom,“无法从stocks.xml加载DOM”); } //查询单个节点。 //bstrQuery1=SysAllocString(L”//rebootexclusiondata[2]/*”; bstrQuery1=SysAllocString(L”//rebootexclusiondata///Exclution//); CHK_ALLOC(bstrQuery1); CHK_HR(pXMLDom->selectSingleNode(bstrQuery1和pNode)); if(pNode) { printf(“selectSingleNode的结果:\n”); CHK_HR(pNode->get_nodeName(&bstrNodeName)); CHK_HR(pNode->get_xml(&bstrNodeValue)); SysFreeString(bstrNodeName); printf(“节点,:\n”,bstrNodeName); printf(“\t%S\n%S\n”,bstrNodeValue); 如果(0==wcscmp(bstrNodeValue,L“true”)) { printf(“\n exe exit\n\n”); } 其他的 { printf(“\n继续!让我们重新启动系统\n\n”); } SysFreeString(bstrNodeValue); 安全释放(pNode); } },c++,xml,msxml6,C++,Xml,Msxml6" /> load(varFileName和varStatus)); if(varStatus!=变量_TRUE) { CHK_HR(ReportParseError(pXMLDom,“无法从stocks.xml加载DOM”); } //查询单个节点。 //bstrQuery1=SysAllocString(L”//rebootexclusiondata[2]/*”; bstrQuery1=SysAllocString(L”//rebootexclusiondata///Exclution//); CHK_ALLOC(bstrQuery1); CHK_HR(pXMLDom->selectSingleNode(bstrQuery1和pNode)); if(pNode) { printf(“selectSingleNode的结果:\n”); CHK_HR(pNode->get_nodeName(&bstrNodeName)); CHK_HR(pNode->get_xml(&bstrNodeValue)); SysFreeString(bstrNodeName); printf(“节点,:\n”,bstrNodeName); printf(“\t%S\n%S\n”,bstrNodeValue); 如果(0==wcscmp(bstrNodeValue,L“true”)) { printf(“\n exe exit\n\n”); } 其他的 { printf(“\n继续!让我们重新启动系统\n\n”); } SysFreeString(bstrNodeValue); 安全释放(pNode); } },c++,xml,msxml6,C++,Xml,Msxml6" />

如何解析多个特定节点的xml 如何使用C++或.p/>检索或解析XML的某个特定节点2或以上。 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); } } void queryNodes() { HRESULT hr=S_正常; IXMLDOMDocument*pXMLDom=NULL; IXMLDOMNodeList*pNodes=NULL; IXMLDOMNode*pNode=NULL; IXMLDOMNode*pNode1=NULL; BSTR bstrQuery1=NULL; BSTR bstrQuery2=NULL; BSTR bstrNodeName=NULL; BSTR bstrNodeValue=NULL; 变体_BOOL varStatus; 变量变量文件名; VariantInit(&varFileName); //123 CHK_HR(createandinitom(&pXMLDom)); CHK_HR(VariantFromString(L“stocks.xml”,varFileName)); CHK_HR(pXMLDom->load(varFileName和varStatus)); if(varStatus!=变量_TRUE) { CHK_HR(ReportParseError(pXMLDom,“无法从stocks.xml加载DOM”); } //查询单个节点。 //bstrQuery1=SysAllocString(L”//rebootexclusiondata[2]/*”; bstrQuery1=SysAllocString(L”//rebootexclusiondata///Exclution//); CHK_ALLOC(bstrQuery1); CHK_HR(pXMLDom->selectSingleNode(bstrQuery1和pNode)); if(pNode) { printf(“selectSingleNode的结果:\n”); CHK_HR(pNode->get_nodeName(&bstrNodeName)); CHK_HR(pNode->get_xml(&bstrNodeValue)); SysFreeString(bstrNodeName); printf(“节点,:\n”,bstrNodeName); printf(“\t%S\n%S\n”,bstrNodeValue); 如果(0==wcscmp(bstrNodeValue,L“true”)) { printf(“\n exe exit\n\n”); } 其他的 { printf(“\n继续!让我们重新启动系统\n\n”); } SysFreeString(bstrNodeValue); 安全释放(pNode); } }

如何解析多个特定节点的xml 如何使用C++或.p/>检索或解析XML的某个特定节点2或以上。 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); } } void queryNodes() { HRESULT hr=S_正常; IXMLDOMDocument*pXMLDom=NULL; IXMLDOMNodeList*pNodes=NULL; IXMLDOMNode*pNode=NULL; IXMLDOMNode*pNode1=NULL; BSTR bstrQuery1=NULL; BSTR bstrQuery2=NULL; BSTR bstrNodeName=NULL; BSTR bstrNodeValue=NULL; 变体_BOOL varStatus; 变量变量文件名; VariantInit(&varFileName); //123 CHK_HR(createandinitom(&pXMLDom)); CHK_HR(VariantFromString(L“stocks.xml”,varFileName)); CHK_HR(pXMLDom->load(varFileName和varStatus)); if(varStatus!=变量_TRUE) { CHK_HR(ReportParseError(pXMLDom,“无法从stocks.xml加载DOM”); } //查询单个节点。 //bstrQuery1=SysAllocString(L”//rebootexclusiondata[2]/*”; bstrQuery1=SysAllocString(L”//rebootexclusiondata///Exclution//); CHK_ALLOC(bstrQuery1); CHK_HR(pXMLDom->selectSingleNode(bstrQuery1和pNode)); if(pNode) { printf(“selectSingleNode的结果:\n”); CHK_HR(pNode->get_nodeName(&bstrNodeName)); CHK_HR(pNode->get_xml(&bstrNodeValue)); SysFreeString(bstrNodeName); printf(“节点,:\n”,bstrNodeName); printf(“\t%S\n%S\n”,bstrNodeValue); 如果(0==wcscmp(bstrNodeValue,L“true”)) { printf(“\n exe exit\n\n”); } 其他的 { printf(“\n继续!让我们重新启动系统\n\n”); } SysFreeString(bstrNodeValue); 安全释放(pNode); } },c++,xml,msxml6,C++,Xml,Msxml6,在这种情况下,它只检查1个标记,即排除标记,与排除标记类似,它还必须同时检查xml中的另一个标记。 如何做到这一点。您使用的是哪个XML库?使用xpath这里是一个示例,我正在使用msxml6.0

在这种情况下,它只检查1个标记,即排除标记,与排除标记类似,它还必须同时检查xml中的另一个标记。
如何做到这一点。

您使用的是哪个XML库?使用xpath这里是一个示例,我正在使用msxml6.0