连接在多个括号中的谓词的行为是否与 and 运算符相同?

Do predicates concatenated in multiple brackets behave the same as the and operator?

我正在写一个 DOM selectors 到 xpath 转换器,碰巧如果我可以像这样连接多个谓词,它会非常适合我:

//div[@id][@class]

而不是像这样:

//div[@id and @class]

虽然粗略的测试似乎表明它们的行为相同,但我不完全确定它们在所有情况下都会如此。他们会吗?

使用多个谓词 100% 等同于使用 and 运算符 前提是两个谓词都不是位置的。位置谓词是其值为数字的谓词,或者明确使用 position()last() 的谓词。例如,*[@x][1]*[1][@x] 不同。