如何用xpath定位符合多个属性条件的节点集

2025-03-22 14:09:05
推荐回答(2个)
回答1:

查找所有book节点(xpath: //book),对每个节点分析其属性,MSXML都有相关的函数.
MSXMLNS::IXMLDOMNodeListPtr pNodeList = NULL;
MSXMLNS::IXMLDOMNamedNodeMapPtr methodpAttrs = NULL;
MSXMLNS::IXMLDOMNodePtr pmethodAttrItem;
MSXMLNS::IXMLDOMNodePtr psNode;
MSXMLNS::IXMLDOMNodePtr requiredNode;

pNodeList = m_pDomDoc->selectNodes((_bstr_t)"//book");
int num = pNodeList->Getlength();
long nCount = 0;

for(int i=0;i{
psNode=pNodeList->Getitem(i);//取得psNode的节点值
psNode->get_attributes(&methodpAttrs);
methodpAttrs->get_length(&nCount);
for(int nmethod = 0; nmethod < nCount; nmethod++) //属性值的循环
{
methodpAttrs->get_item(nmethod,&pmethodAttrItem);
CString strgetName = FromBSTR((_bstr_t)pmethodAttrItem->nodeName);
CString strgetValue = FromBSTR((_bstr_t)pmethodAttrItem->nodeTypedValue);//得到属性值后进行相应的操作
}
}

回答2:

Books/book[@author='John' and @year='2009' and @language='En']