2016-06-09 163 views
0

我想实现使用XPath以下,但我不能选择工作.....Xpath的多个过滤器中选择

我有以下情形:

性别男性或女性 名优产品:品牌A或品牌B或BrandC或BrandD

我想选择所有的男性只有品牌A,品牌B属性和BrandC

如果我用下面的;

/node[gender[1] = "male"] (perfect selects only the male products) 

/node[gender[1] = "male" and brand[1][contains(.,"BrandA")]](perfect Xpath selects only the male products with the BrandA) 

到目前为止好,但如果我用站立下方是不会选择任何....

/node[gender[1] = "male" and brand[1][contains(.,"BrandA")] and brand[1][contains(.,"BrandB")]] 

有什么建议?我究竟做错了什么?

谢谢!

+0

你可以显示你的示例XML摘录? – Rao

回答

0

您应该使用or品牌之间进行选择任何他们与and性别

/node[gender[1] = "male" and 
     (brand[1][contains(.,"BrandA")] or brand[1][contains(.,"BrandB")])] 

当你把所有and的XPath觉得没有什么,因为品牌[1],大概,可能包含品牌A和品牌B在同一时间

+0

嗨,这是我试过,但以下 /节点[性别[1] =“男性”和 (品牌[1] [包含(。,“BrandA”)]或品牌[1] [包含(。,“ BrandB“)]] 选择性别男性的同类产品,即使是具有BrandC的产品,也应该过滤出BrandC,但这种情况不会发生...... – Phillip

+0

videlibri.sourceforge.net/cgi-bin/xidelcgi?&data=% 3Croot%3E%3Cnode%3E%3Cgender%3Emale%3C%2Fgender%3E%3Cbrand%3EBrandA%3C%2Fbrand%3E%3C%2Fnode%3E%3Cnode%3E%3Cgender%3Efemale%3C%2Fgender%3E%3Cbrand% 3EBrandA%3C%2Fbrand%3E%3C%2Fnode%3E%3Cnode%3E%3Cgender%3Emale%3C%2Fgender%3E%3Cbrand%3EBrandC%3C%2Fbrand%3E%3C%2Fnode%3E%3C%2Froot%3E% 0A&=&提取物=%2F%2Fnode%5Bgender%5B1%5D%20%3D%20%22male%22%20于是%20%0A%20%20%20%20%20%20(品牌%5B1%5D%5Bcontains (。%2C%22BrandA%22)%5D%20or%20brand%5B1%5D%5Bcontains(。%2C%22BrandB%22)%5D)%5D%0A%0A%0A&=%2F和输入格式=汽车&printed-node-format = xml&extract-kind = xpath2 – splash58

+0

嗨Splash ...我不确定你发送了什么?代码看起来他已经搞砸了:)....你可以重新发送你的答案,谢谢! – Phillip