唐山网站建设

设为主页 加入收藏 繁體中文

XPath 11个实例

核心提示:XPath 11个实例,浏览XPath 11个实例,实例 1基本的XPath语法类似于在1个文件系统中定位文件,假设路径以斜线 / 开始, 那末该路径就表示到1个元素的尽对路径。/AAA选择根元素AAA             &

实例 1
基本的XPath语法类似于在1个文件系统中定位文件,假设路径以斜线 / 开始, 那末该路径就表示到1个元素的尽对路径。
/AAA
选择根元素AAA
    
         
         
         
         
         
              
         

         
    
 

/AAA/CCC
选择AAA的所有CCC子元素
    
         
         
         
         
         
              
         

         
    
  

/AAA/DDD/BBB
选择AAA的子元素DDD的所有子元素
    
         
         
         
         
         
              
         

         
    

实例 2
假设路径以双斜线 // 开头, 则表示选择文档中所有满足双斜线//以后规则的元素(不管层级关系) //BBB
选择所有BBB元素
    
         
         
         
         
              
         

         
              
                   
                   
              

         

    

 
//DDD/BBB
选择所有父元素是DDD的BBB元素
    
         
         
         
         
              
         

         
              
                   
                   
              

         

    

实例 3
星号 * 表示选择所有由星号之前的路径所定位的元素
/AAA/CCC/DDD/*
选择所有路径依附于/AAA/CCC/DDD的元素
    
         
              
                   
                   
                   
                   
              

         

         
              
                   
                   
                   
                   
              

         

         
              
                   
                        
                   

              

         

    

 
/*/*/*/BBB
选择所有的有3个先人元素的BBB元素
    
         
              
                   
                   
                   
                   
              

         

         
              
                   
                   
                   
                   
              

         

         
              
                   
                        
                   

              

         

    

 
//*
选择所有元素
 
       
              
                   
                   
                   
                   
              

         

         
              
                   
                   
                   
                   
              

         

         
              
                   
                        
                   

              

         

    

实例 4
方块号里的表达式可以进1步的指定元素, 其中数字表示元素在选择集里的位置, 而last()函数则表示选择集中的最后1个元素.

/AAA/BBB[1]
选择AAA的第1个BBB子元素
    
         
         
         
         
    

 
/AAA/BBB[last()]
 
选择AAA的最后1个BBB子元素
    
         
         
         
         
    

实例 5


//@id
选择所有的id属性
    
         
         
         
         
    

 
//BBB[@id]
选择有id属性的BBB元素
    
         
         
         
         
    

 
//BBB[@name]
选择有name属性的BBB元素
    
         
         
         
         
    

 
//BBB[@*]
选择有任意属性的BBB元素
    
         
         
         
         
    

 
//BBB[not(@*)]
选择没有属性的BBB元素
    
         
         
         
         
    

实例 6
属性的值可以被用来作为选择的准则, normalize-space函数删除前部和尾部的空格, 并且把连续的空格串替换为1个单1的空格

//BBB[@id=\'b1\']
选择含有属性id且其值为\'b1\'的BBB元素
    
         
         
         
    

 
//BBB[@name=\'bbb\']
选择含有属性name且其值为\'bbb\'的BBB元素
    
         
         
         
    

 
//BBB[normalize-space(@name)=\'bbb\']
选择含有属性name且其值(在用normalize-space函数往掉前后空格后)为\'bbb\'的BBB元素
    
         
         
         
    

实例 7
count()函数可以计数所选元素的个数

//*[count(BBB)=2]
选择含有2个BBB子元素的元素
    
         
              
              
              
         

         
              
              
         

         
              
              
         

    

 
//*[count(*)=2]
选择含有2个子元素的元素
    
         
              
              
              
         

         
              
              
         

         
              
              
         

    

 
//*[count(*)=3]
选择含有3个子元素的元素
    
         
              
              
              
         

         
              
              
         

         
              
              
         

    

实例 8
name()函数返回元素的名称, start-with()函数在该函数的第1个参数字符串是以第2个参数字符开始的情况返回true, contains()函数当其第1个字符串参数包括有第2个字符串参数时返回true.

//*[name()=\'BBB\']
选择所着名称为BBB的元素(这里等价于//BBB)
    
         
              
              
              
         

         
              
              
         

         
              
              
         

    

 
//*[starts-with(name(),\'B\')]
选择所着名称以\"B\"起始的元素
    
         
              
              
              
         

         
              
              
         

         
              
              
         

    

 
//*[contains(name(),\'C\')]
选择所着名称包括\"C\"的元素
    
         
              
              
              
         

         
              
              
         

         
              
              
         

    

实例 9
多个路径可以用分隔符 | 合并在1起

//CCC | //BBB
选择所有的CCC和BBB元素
    
         
         
         
              
         

         
    

 
/AAA/EEE | //BBB
选择所有的BBB元素和所有是AAA的子元素的EEE元素
    
         
         
         
              
         

         
    

 
/AAA/EEE | //DDD/CCC | /AAA | //BBB
可以合并的路径数目没有限制
    
         
         
         
              
         

         
    

实例 10
child轴(axis)包括上下文节点的子元素, 作为默许的轴,可以忽视不写.

/AAA
等价于 /child::AAA
    
         
         
    

 
/child::AAA
等价于/AAA
    
         
         
    

 
/AAA/BBB
等价于/child::AAA/child::BBB
    
         
         
    

 
/child::AAA/child::BBB
等价于/AAA/BBB
    
         
         
    

 
/child::AAA/BBB
2者都可以被合并
    
         
         
    

 实例 11
descendant (后代)轴包括上下文节点的后代,1个后代是指子节点或子节点的子节点等等, 因此descendant轴不会包括属性和命名空间节点.

/descendant::*
选择文档根元素的所有后代.即所有的元素被选择
    
         
              
                   
                        
                        
                   

              

         

         
              
                   
                        
                             
                        

                   

              

         

    

 
/AAA/BBB/descendant::*
选择/AAA/BBB的所有后代元素
    
         
              
                   
                        
                        
                   

              

         

         
              
                   
                        
                             
                        

                   

              

         

    

 
//CCC/descendant::*
选择在先人元素中有CCC的所有元素
    
         
              
                   
                        
                        
                   

              

         

   

唐山网站建设www.fw8.net


TAG:函数,路径,属性,实例,元素
评论加载中...
内容:
评论者: 验证码: