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

例如有xml如下:<Books><bookauthor="John"year="2009"language="En">Hello</book><bookauthor="J... 例如有xml如下:
<Books>
<book author="John" year="2009" language="En">Hello</book>
<book author="John" year="2010" language="En">Bye</book>
<book author="John" year="2009" language="Chs">Good</book>
<book author="Mike" year="2009" language="En">Thanks</book>
</Books>
现在要定位author是John,且year是2009,且language是En的节点~
展开
 我来答
时洪果
2010-09-08
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
查找所有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<num;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);//得到属性值后进行相应的操作
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
h346230554
2010-09-10
知道答主
回答量:3
采纳率:0%
帮助的人:3万
展开全部
Books/book[@author='John' and @year='2009' and @language='En']
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式