运算符Xpath // *含义

时间:2019-06-16 17:41:25

标签: xml xpath

我想知道//*xpath表达式中的含义,因为我有两个表达式

//*[A or B]

//* [count(descendant::*)=1]

所以我不知道这些表达式是做什么的。

2 个答案:

答案 0 :(得分:1)

//表示树中的所有位置(从根节点开始并向下任何级别降低)。它与/不同,后者从根节点开始,然后在下一个直接级别上运行。

*用于任意元素(与@相反,后者将是一个属性)。

[]内部的事物是一个条件。在您的情况下,条件[A or B]是存在子元素A还是子元素B。条件count(descendant::*)=1表示只有一个孩子,孙子之类。

答案 1 :(得分:0)

//表示全选,*表示任何元素。

所以// *表示选择所有元素。添加[A或B],还可以确保该元素还有一个名为A或B的子元素。

添加count(descendant :: *)= 1,我相信可以确保该元素只有一个具有任何名称的后代。