2016-06-09 85 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