我想知道//*
在xpath
表达式中的含义,因为我有两个表达式
//*[A or B]
和
//* [count(descendant::*)=1]
所以我不知道这些表达式是做什么的。
答案 0 :(得分:1)
//
表示树中的所有位置(从根节点开始并向下任何级别降低)。它与/
不同,后者从根节点开始,然后在下一个直接级别上运行。
*
用于任意元素(与@
相反,后者将是一个属性)。
[
和]
内部的事物是一个条件。在您的情况下,条件[A or B]
是存在子元素A
还是子元素B
。条件count(descendant::*)=1
表示只有一个孩子,孙子之类。
答案 1 :(得分:0)
//表示全选,*表示任何元素。
所以// *表示选择所有元素。添加[A或B],还可以确保该元素还有一个名为A或B的子元素。
添加count(descendant :: *)= 1,我相信可以确保该元素只有一个具有任何名称的后代。