以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XSL/XSLT/XSL-FO/CSS 』  (http://bbs.xml.org.cn/list.asp?boardid=8)
----  xpath基本语法(路径匹配)[转帖]  (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=20818)


--  作者:wopenle
--  发布时间:8/1/2005 5:05:00 PM

--  xpath基本语法(路径匹配)[转帖]
[color=#FF0000]size=4]1. "/"[/size]

(1)/AAA:
   <AAA>
          <BBB/>
          <CCC/>
          <BBB/>
          <BBB/>
          <DDD>
               <BBB/>
          <DDD>
          <CCC/>
     </AAA>
-----------------------------------------------------------------------

(2)/AAA/CCC:
    <AAA>
          <BBB/>
          <CCC/>
          <BBB/>
          <BBB/>
          <DDD>
               <BBB/>
          <DDD>
          <CCC/>
     </AAA>
--------------------------------------------------------------------------------------
(3)/AAA/DDD/BBB:

<AAA>
          <BBB/>
          <CCC/>
          <BBB/>
          <BBB/>
          <DDD>
               <BBB/>
          <DDD>
          <CCC/>
     </AAA>
-------------------------------------------------------------
-------------------------------------------------------------
2. "//"

(1)//BBB

<AAA>
          <BBB/>
          <CCC/>
          <BBB/>
          <DDD>
               <BBB/>
          <DDD>
          <CCC>
               <DDD>
                    <BBB/>
                    <BBB/>

               <DDD>
          <CCC>
     </AAA>
--------------------------------------------------------------------------------
(2)//DDD/BBB

    <AAA>
          <BBB/>
          <CCC/>
          <BBB/>
          <DDD>
               <BBB/>
          DDD>
          <CCC>
               <DDD>
                    <BBB/>
                    <BBB/>

               <DDD>
          <CCC>
     </AAA>
------------------------------------------------------------------
------------------------------------------------------------------
3. "*":

(1)/AAA/CCC/DDD/*

<AAA>
          <XXX>
               <DDD>
                    <BBB/>
                    <BBB/>
                    <EEE/>
                    <FFF/>
               <DDD>
          <XXX>
          <CCC>
               <DDD>
                    <BBB/>
                    <BBB/>
                    <EEE/>
                    <FFF/>

               <DDD>
          <CCC>
          <CCC>
               <BBB>
                    <BBB>
                         <BBB/>
                    <BBB>
               <BBB>
          <CCC>
     </AAA>
-----------------------------------------------------------------------
(2) /*/*/*/BBB

      <AAA>
          <XXX>
               <DDD>
                    <BBB/>
                    <BBB/>
                    <EEE/>
                    <FFF/>
               <DDD>
          <XXX>
          <CCC>
               <DDD>
                    <BBB/>
                    <BBB/>
                    <EEE/>
                    <FFF/>
               <DDD>
          <CCC>
          <CCC>
               <BBB>
                    <BBB>
                         <BBB/>
                    <BBB>
               <BBB>
          <CCC>
     </AAA>
-------------------------------------------------------------------------------------------------
(3)//*

     <AAA>
          <XXX>
               <DDD>
                    <BBB/>
                    <BBB/>
                    <EEE/>
                    <FFF/>
               DDD>
          XXX>
          <CCC>
               <DDD>
                    <BBB/>
                    <BBB/>
                    <EEE/>
                    <FFF/>
               DDD>
          CCC>
     </AAA>

------------------------------------------------------------------------------------
[size=4]4. [1] , last()[/size]

[B](1)/AAA/BBB[1][/B]

     <AAA>
          <BBB/>
          <BBB/>
          <BBB/>
          <BBB/>
     </AAA>
---------------------------------------------------------------------------
[B](2)/AAA/BBB[last()][/B]

     <AAA>
          <BBB/>
          <BBB/>
          <BBB/>
          <BBB/>
     </AAA>
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
5. "@" :

(1)//@id

     <AAA>
          <BBB id = "b1"/>
          <BBB id = "b2"/>
          <BBB name = "bbb"/>
          <BBB/>
    < /AAA>
--------------------------------------------------------------------------------
[B](2)//BBB[@id][/B]

     <AAA>
          <BBB  id = "b1"/>
          <BBB  id = "b2"/>
          <BBB name = "bbb"/>
          <BBB/>
     </AAA>
---------------------------------------------------------------------------------------
[B](3)//BBB[@name][/B]

     <AAA>
          <BBB id = "b1"/>
          <BBB id = "b2"/>
          <BBB  name = "bbb"/>
          <BBB/>
     </AAA>
--------------------------------------------------------------------------
[B](4)//BBB[@*][/B]

     <AAA>
          <BBB id = "b1"/>
          <BBB id = "b2"/>
          <BBB name = "bbb"/>
          <BBB/>
     </AAA>
--------------------------------------------------------------------------------------------
[B](5)//BBB[not(@*)][/B]

     <AAA>
          <BBB id = "b1"/>
          <BBB id = "b2"/>
          <BBB name = "bbb"/>
          <BBB/>
     </AAA>
---------------------------------------------------------------------------------
[B](6)//BBB[@id='b1'][/B]

     <AAA>
          <BBB id = "b1"/>
          <BBB name = " bbb "/>
          <BBB name = "bbb"/>
     </AAA>
---------------------------------------------------------------------------------
[B](7)//BBB[@name='bbb'][/B]

     <AAA>
          <BBB id = "b1"/>
          <BBB name = " bbb "/>
          <BBB name = "bbb"/>
     </AAA>
------------------------------------------------------------------------------------
[B](8)//BBB[normalize-space(@name)='bbb'][/B]

     <AAA>
          <BBB id = "b1"/>
          <BBB name = "     bbb "/>
          <BBB name = "bbb"/>
     </AAA>
---------------------------------------------------------------------------------------------
6. count() :

[B](1)//*[count(BBB)=2][/B]

     <AAA>
          <CCC>
               <BBB/>
               <BBB/>
               <BBB/>
          CCC>
          <DDD>
               <BBB/>
               <BBB/>
          [color=#FF0000</DDD>[/color]
          <EEE>
               <CCC/>
               <DDD/>
         </ EEE>
     </AAA>
----------------------------------------------------------------------------------
[B](2)//*[count(*)=2][/B]

     <AAA>
          <CCC>
               <BBB/>
               <BBB/>
               <BBB/>
          CCC>
          <DDD>
               <BBB/>
               <BBB/>
          </DDD>
          <EEE>
               <CCC/>
               <DDD/>
         </ EEE>
    </ AAA>
--------------------------------------------------------------------------------
[B](3)//*[count(*)=3][/B]
     <AAA>
          <CCC>
               <BBB/>
               <BBB/>
               <BBB/>
         </ CCC>
        </DDD>
               <BBB/>
               <BBB/>
          DDD>
          <EEE>
               <CCC/>
               <DDD/>
          </EEE>
     </AAA>
-----------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------
7. name() :

[B](1)//*[name()='BBB'][/B]

     <AAA>
          <BCC>
               <BBB/>
               <BBB/>
               <BBB/>
          </BCC>
          <DDB>
               <BBB/>
               <BBB/>
          </DDB>
          <BEC>
               <CCC/>
               <DBD/>
         </ BEC>
    </AAA>
-----------------------------------------------------------------------
[B](2)//*[starts-with(name(),'B')][/B]

     <AAA>
          <BCC>
               <BBB/>
               <BBB/>
               <BBB/>
          BCC>
          <DDB>
               <BBB/>
               <BBB/>

          DDB>
          <BEC>
               <CCC/>
               <DBD/>
          </BEC>
     </AAA>
----------------------------------------------------------------------------------------------
[B](3)//*[contains(name(),'C')][/B]

     <AAA>
          <BCC>
               <BBB/>
               <BBB/>
               <BBB/>
          </BCC>
          <DDB>
               <BBB/>
               <BBB/>
          </DDB>
          <BEC>
               <CCC/>
               <DBD/>
          </BEC>
     </AAA>
------------------------------------------------------------------------
-----------------------------------------------------------------------
8. string-length() :

[B](1)//*[string-length(name()) = 3][/B]

     <AAA>
          <Q/>
          <SSSS/>
          <BB/>
          <CCC/>
          <DDDDDDDD/>
          <EEEE/>
     </AAA>
------------------------------------------------------------------------
[B](2)//*[string-length(name()) < 3][/B]

     <AAA>
          <Q/>
          <SSSS/>
          <BB/>
          <CCC/>
          <DDDDDDDD/>
          <EEEE/>
     </AAA>
-----------------------------------------------------------------------------------
[B](3)//*[string-length(name()) > 3][/B]

     <AAA>
          <Q/>
          <SSSS/>
          <BB/>
          <CCC/>
          <DDDDDDDD/>
          <EEEE/>
     </AAA>
---------------------------------------------------------------------
--------------------------------------------------------------------
9. "|" :

(1)//CCC | //BBB

     <AAA>
          <BBB/>
          <CCC/>

          <DDD>
               <CCC/>
          </DDD>
          <EEE/>
     </AAA>
----------------------------------------------------------------------------------
(2)/AAA/EEE | //BBB

     <AAA>
          <BBB/>
          <CCC/>
          <DDD>
               <CCC/>
          DDD>
          <EEE/>
     </AAA>
----------------------------------------------------------------------------------

(3)/AAA/EEE | //DDD/CCC | /AAA | //BBB

     <AAA>
          <BBB/>
          <CCC/>
          <DDD>
               <CCC/>
          </DDD>
          <EEE/>
    </AAA>

[/color][/color]

[/color]

[此贴子已经被作者于2005-8-1 18:07:32编辑过]

--  作者:wopenle
--  发布时间:8/1/2005 6:08:00 PM

--  
黑体字为表达式
红色字为表达式所影响的元素



--  作者:hualong2000
--  发布时间:8/17/2005 11:37:00 PM

--  
bu dong

--  作者:algorithm
--  发布时间:1/7/2006 1:59:00 PM

--  
shuang
--  作者:Rayz
--  发布时间:1/7/2006 2:48:00 PM

--  
楼主辛苦了
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
281.250ms