xpath

属性的值可以被用来作为选择的准则, normalize-space函数删除了前部和尾部的空格, 并且把连续的空格串替换为一个单一的空格
 
//BBB[@id='b1']
选择含有属性id且其值为'b1'的BBB元素

     <AAA>
          <BBB id = "b1"/>
          <BBB name = " bbb "/>
          <BBB name = "bbb"/>
     </AAA>
在XLab中打开实例 | 树视图 (JPG)
 
//BBB[@name='bbb']
选择含有属性name且其值为'bbb'的BBB元素

     <AAA>
          <BBB id = "b1"/>
          <BBB name = " bbb "/>
          <BBB name = "bbb"/>
     </AAA>
在XLab中打开实例 | 树视图 (JPG)
 
//BBB[normalize-space(@name)='bbb']
选择含有属性name且其值(在用normalize-space函数去掉前后空格后)为'bbb'的BBB元素

     <AAA>
          <BBB id = "b1"/>
          <BBB name = " bbb "/>
          <BBB name = "bbb"/>
     </AAA>
在XLab中打开实例 | 树视图 (JPG)

count()函数可以计数所选元素的个数
 
//*[count(BBB)=2]
选择含有2个BBB子元素的元素

     <AAA>
          <CCC>
               <BBB/>
               <BBB/>
               <BBB/>
          </CCC>
          <DDD>
               <BBB/>
               <BBB/>
          </DDD>
          <EEE>
               <CCC/>
               <DDD/>
          </EEE>
     </AAA>
在XLab中打开实例 | 树视图 (JPG)
 
//*[count(*)=2]
选择含有2个子元素的元素

     <AAA>
          <CCC>
               <BBB/>
               <BBB/>
               <BBB/>
          </CCC>
          <DDD>
               <BBB/>
               <BBB/>
          </DDD>
          <EEE>
               <CCC/>
               <DDD/>
          </EEE>
     </AAA>
在XLab中打开实例 | 树视图 (JPG)
 
//*[count(*)=3]
选择含有3个子元素的元素

     <AAA>
          <CCC>
               <BBB/>
               <BBB/>
               <BBB/>
          </CCC>
          <DDD>
               <BBB/>
               <BBB/>
          </DDD>
          <EEE>
               <CCC/>
               <DDD/>
          </EEE>
     </AAA>
在XLab中打开实例 | 树视图 (JPG)

name()函数返回元素的名称, start-with()函数在该函数的第一个参数字符串是以第二个参数字符开始的情况返回true, contains()函数当其第一个字符串参数包含有第二个字符串参数时返回true.
 
//*[name()='BBB']
选择所有名称为BBB的元素(这里等价于//BBB)

     <AAA>
          <BCC>
               <BBB/>
               <BBB/>
               <BBB/>
          </BCC>
          <DDB>
               <BBB/>
               <BBB/>
          </DDB>
          <BEC>
               <CCC/>
               <DBD/>
          </BEC>
     </AAA>
在XLab中打开实例 | 树视图 (JPG)
 
//*[starts-with(name(),'B')]
选择所有名称以"B"起始的元素

     <AAA>
          <BCC>
               <BBB/>
               <BBB/>
               <BBB/>
          </BCC>
          <DDB>
               <BBB/>
               <BBB/>
          </DDB>
          <BEC>
               <CCC/>
               <DBD/>
          </BEC>
     </AAA>
在XLab中打开实例 | 树视图 (JPG)
 
//*[contains(name(),'C')]
选择所有名称包含"C"的元素

     <AAA>
          <BCC>
               <BBB/>
               <BBB/>
               <BBB/>
          </BCC>
          <DDB>
               <BBB/>
               <BBB/>
          </DDB>
          <BEC>
               <CCC/>
               <DBD/>
          </BEC>
     </AAA>
在XLab中打开实例 | 树视图 (JPG)

string-length函数返回字符串的字符数,你应该用&lt;替代<, 用&gt;代替>
 
//*[string-length(name()) = 3]
选择名字长度为3的元素

     <AAA>
          <Q/>
          <SSSS/>
          <BB/>
          <CCC/>
          <DDDDDDDD/>
          <EEEE/>
     </AAA>
在XLab中打开实例 | 树视图 (JPG)
 
//*[string-length(name()) < 3]
选择名字长度小于3的元素

     <AAA>
          <Q/>
          <SSSS/>
          <BB/>
          <CCC/>
          <DDDDDDDD/>
          <EEEE/>
     </AAA>
在XLab中打开实例 | 树视图 (JPG)
 
//*[string-length(name()) > 3]
选择名字长度大于3的元素

     <AAA>
          <Q/>
          <SSSS/>
          <BB/>
          <CCC/>
          <DDDDDDDD/>
          <EEEE/>
     </AAA>
在XLab中打开实例 | 树视图 (JPG)
原文地址:https://www.cnblogs.com/cxd4321/p/903845.html