XPath 11 인스턴스

黄舟
풀어 주다: 2017-02-28 16:40:03
원래의
1511명이 탐색했습니다.

예 1
기본 XPath 구문은 파일 시스템에서 파일을 찾는 것과 유사합니다. 경로가 슬래시 /로 시작하는 경우 경로는 요소에 대한 절대 경로를 나타냅니다.
/AAA
AAA 루트 요소 선택

<AAA>           
<BBB/>           
<CCC/>           
<BBB/>           
<BBB/>          
 <DDD>                
 <BBB/>           
 </DDD>           
 <CCC/>      
 </AAA> 
/AAA/CCC
로그인 후 복사

AAA의 모든 CCC 하위 요소 선택

<AAA>           
<BBB/>           
<CCC/>           
<BBB/>           
<BBB/>           
<DDD>                
<BBB/>           
</DDD>           
<CCC/>      
</AAA>  
/AAA/DDD/BBB
로그인 후 복사

DDD의 모든 하위 요소 선택 AAA 하위 요소

  <AAA> 
          <BBB/> 
          <CCC/> 
          <BBB/> 
          <BBB/> 
          <DDD> 
               <BBB/> 
          </DDD> 
          <CCC/> 
     </AAA>
로그인 후 복사

예제 2
경로가 이중 슬래시로 시작하는 경우 // 이는 이중 슬래시 뒤의 규칙을 만족하는 문서의 모든 요소 //를 의미합니다. (계층 관계에 관계없이) //BBB
모든 BBB 요소 선택

     <AAA> 
          <BBB/> 
          <CCC/> 
          <BBB/> 
          <DDD> 
               <BBB/> 
          </DDD> 
          <CCC> 
               <DDD> 
                    <BBB/> 
                    <BBB/> 
               </DDD> 
          </CCC> 
     </AAA> 
 
//DDD/BBB
로그인 후 복사

상위 요소가 DDD인 모든 BBB 요소 선택

     <AAA> 
          <BBB/> 
          <CCC/> 
          <BBB/> 
          <DDD> 
               <BBB/> 
          </DDD> 
          <CCC> 
               <DDD> 
                    <BBB/> 
                    <BBB/> 
               </DDD> 
          </CCC> 
     </AAA>
로그인 후 복사


예시 3
별표 *는 별표
/AAA/CCC/DDD/*
/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> 
 
/*/*/*/BBB
로그인 후 복사

3개의 상위 요소가 있는 모든 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> 
 
//*
로그인 후 복사

모든 요소 선택

  <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>
로그인 후 복사

예 4
제곱 숫자의 표현식은 다음과 같습니다. 요소를 추가로 지정해야 합니다. 여기서 숫자는 선택 세트의 요소 위치를 나타내고 last() 함수는 선택 세트의 마지막 요소를 나타냅니다.

/AAA/BBB[1]
AAA 요소 A BBB 하위 요소 선택

 <AAA> 
          <BBB/> 
          <BBB/> 
          <BBB/> 
          <BBB/> 
     </AAA> 
 
/AAA/BBB[last()]
로그인 후 복사


AAA의 마지막 BBB 하위 요소 선택

    <AAA> 
          <BBB/> 
          <BBB/> 
          <BBB/> 
          <BBB/> 
     </AAA>
로그인 후 복사

예 5


//@id
모든 ID 속성 선택

<AAA> 
          <BBB id = \"b1\"/> 
          <BBB id = \"b2\"/> 
          <BBB name = \"bbb\"/> 
          <BBB/> 
     </AAA> 
 
//BBB[@id]
로그인 후 복사

id 속성이 있는 BBB 요소 선택

  <AAA> 
          <BBB id = \"b1\"/> 
          <BBB id = \"b2\"/> 
          <BBB name = \"bbb\"/> 
          <BBB/> 
     </AAA> 
 
//BBB[@name]
로그인 후 복사

선택 이름 속성이 있는 BBB 요소

<AAA> 
          <BBB id = \"b1\"/> 
          <BBB id = \"b2\"/> 
          <BBB name = \"bbb\"/> 
          <BBB/> 
     </AAA> 
 
//BBB[@*]
로그인 후 복사

속성이 있는 BBB 요소 선택

<AAA> 
          <BBB id = \"b1\"/> 
          <BBB id = \"b2\"/> 
          <BBB name = \"bbb\"/> 
          <BBB/> 
     </AAA> 
 
//BBB[not(@*)]
로그인 후 복사

속성이 없는 BBB 요소 선택

<AAA> 
          <BBB id = \"b1\"/> 
          <BBB id = \"b2\"/> 
          <BBB name = \"bbb\"/> 
          <BBB/> 
     </AAA>
로그인 후 복사

예 6
속성의 값을 선택 기준으로 사용할 수 있습니다. Normalize-space 함수는 앞뒤 공백을 제거하고 연속된 공백 문자열을 단일 공백으로 바꿉니다.

//BBB[@id='b1']
속성 id를 포함하고 그 값은 'b1'인 BBB 요소를 선택하세요.

 <AAA> 
          <BBB id = \"b1\"/> 
          <BBB name = \" bbb \"/> 
          <BBB name = \"bbb\"/> 
     </AAA> 
 
//BBB[@name=\&#39;bbb\&#39;]
로그인 후 복사

다음을 포함하는 BBB 요소를 선택하세요. 속성 이름 및 값 'bbb'

<AAA> 
          <BBB id = \"b1\"/> 
          <BBB name = \" bbb \"/> 
          <BBB name = \"bbb\"/> 
     </AAA> 
 
//BBB[normalize-space(@name)=\&#39;bbb\&#39;]
로그인 후 복사

의 BBB 요소

에 대해 속성 이름과 해당 값이 포함된 BBB 요소
<를 선택합니다(선행 및 속성 제거 후). 정규화 공간 함수를 사용한 후행 공백)은 'bbb'입니다. 🎜>

     <AAA> 
          <BBB id = \"b1\"/> 
          <BBB name = \" bbb \"/> 
          <BBB name = \"bbb\"/> 
     </AAA>
로그인 후 복사

예 7

count() 함수는 선택한 요소의 수를 계산할 수 있습니다

//*[count( BBB)=2]

BBB 하위 요소 중 2개의 요소가 포함된 선택

     <AAA> 
          <CCC> 
               <BBB/> 
               <BBB/> 
               <BBB/> 
          </CCC> 
          <DDD> 
               <BBB/> 
               <BBB/> 
          </DDD> 
          <EEE> 
               <CCC/> 
               <DDD/> 
          </EEE> 
     </AAA> 
 
//*[count(*)=2]
로그인 후 복사

2개의 하위 요소가 있는 요소 선택


     <AAA> 
          <CCC> 
               <BBB/> 
               <BBB/> 
               <BBB/> 
          </CCC> 
          <DDD> 
               <BBB/> 
               <BBB/> 
          </DDD> 
          <EEE> 
               <CCC/> 
               <DDD/> 
          </EEE> 
     </AAA> 
 
//*[count(*)=3]
로그인 후 복사

3개의 하위 요소가 있는 요소 선택 elements

 

<AAA> 
          <CCC> 
               <BBB/> 
               <BBB/> 
               <BBB/> 
          </CCC> 
          <DDD> 
               <BBB/> 
               <BBB/> 
          </DDD> 
          <EEE> 
               <CCC/> 
               <DDD/> 
          </EEE> 
     </AAA>
로그인 후 복사

예 8

name() 함수는 요소의 이름을 반환하고, start-with() 함수는 함수의 첫 번째 매개변수 문자열이 다음으로 시작할 때 true를 반환합니다. 두 번째 매개변수 문자, 그리고 첫 번째 문자열 매개변수에 두 번째 문자열 매개변수가 포함되어 있으면 true를 반환하는 경우 contain() 함수가 true를 반환합니다.

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

BBB라는 이름의 모든 요소 선택(여기서는 //BBB와 동일)
 

<AAA> 
          <BCC> 
               <BBB/> 
               <BBB/> 
               <BBB/> 
          </BCC> 
          <DDB> 
               <BBB/> 
               <BBB/> 
          </DDB> 
          <BEC> 
               <CCC/> 
               <DBD/> 
          </BEC> 
     </AAA> 
 
//*[starts-with(name(),\&#39;B\&#39;)]
로그인 후 복사

이름이 "B"로 시작하는 모든 요소 선택

 

<AAA> 
          <BCC> 
               <BBB/> 
               <BBB/> 
               <BBB/> 
          </BCC> 
          <DDB> 
               <BBB/> 
               <BBB/> 
          </DDB> 
          <BEC> 
               <CCC/> 
               <DBD/> 
          </BEC> 
     </AAA> 
 
//*[contains(name(),\&#39;C\&#39;)]
로그인 후 복사

모든 요소 선택 이름에 "C"가 포함됨


<AAA> 
          <BCC> 
               <BBB/> 
               <BBB/> 
               <BBB/> 
          </BCC> 
          <DDB> 
               <BBB/> 
               <BBB/> 
          </DDB> 
          <BEC> 
               <CCC/> 
               <DBD/> 
          </BEC> 
     </AAA>
로그인 후 복사

예 9

구분 기호를 사용하여 여러 경로를 병합할 수 있음 |



//CCC | /BBB

모든 CCC 및 BBB 요소 선택


<AAA> 
          <BBB/> 
          <CCC/> 
          <DDD> 
               <CCC/> 
          </DDD> 
          <EEE/> 
     </AAA> 
 
/AAA/EEE | //BBB
로그인 후 복사

AAA의 하위 요소인 모든 BBB 요소와 모든 EEE 요소 선택


<AAA> 
          <BBB/> 
          <CCC/> 
          <DDD> 
               <CCC/> 
          </DDD> 
          <EEE/> 
     </AAA> 
 
/AAA/EEE | //DDD/CCC | /AAA | //BBB
로그인 후 복사

숫자 병합할 수 있는 경로 수 제한 없음


   <AAA> 
          <BBB/> 
          <CCC/> 
          <DDD> 
               <CCC/> 
          </DDD> 
          <EEE/> 
     </AAA>
로그인 후 복사

예 10

하위 축에는 컨텍스트 노드의 하위 요소가 포함되어 있으므로 무시할 수 있습니다.



/AAA

는 /child::AAA


     <AAA> 
          <BBB/> 
          <CCC/> 
     </AAA> 
 
/child::AAA
로그인 후 복사

와 동일하며 /AAA

 


  <AAA> 
          <BBB/> 
          <CCC/> 
     </AAA>
로그인 후 복사

와 동일합니다. /AAA/BBB

/child::AAA/child::BBB

     <AAA> 
          <BBB/> 
          <CCC/> 
     </AAA>
로그인 후 복사
로그인 후 복사

/child::AAA/child::BBB

/AAA/와 동일 BBB

     <AAA> 
          <BBB/> 
          <CCC/> 
     </AAA>
로그인 후 복사
로그인 후 복사

/child::AAA/BBB

둘 다 병합 가능



   <AAA> 
          <BBB/> 
          <CCC/> 
     </AAA>
로그인 후 복사

예 11

descendant(descendant) 축에 컨텍스트가 포함됨 노드 자손, 자손은 자식 노드 또는 자식 노드의 자식 노드 등을 참조하므로 자손 축에는 속성 및 네임스페이스 노드가 포함되지 않습니다.


/descendant::*

는 모두 선택합니다. 즉, 모든 요소가 선택됩니다.


     <AAA> 
          <BBB> 
               <DDD> 
                    <CCC> 
                         <DDD/> 
                         <EEE/> 
                    </CCC> 
               </DDD> 
          </BBB> 
          <CCC> 
               <DDD> 
                    <EEE> 
                         <DDD> 
                              <FFF/> 
                         </DDD> 
                    </EEE> 
               </DDD> 
          </CCC> 
     </AAA> 
 
/AAA/BBB/descendant::*
로그인 후 복사

/AAA/BBB의 모든 하위 요소 선택

     <AAA> 
          <BBB> 
               <DDD> 
                    <CCC> 
                         <DDD/> 
                         <EEE/> 
                    </CCC> 
               </DDD> 
          </BBB> 
          <CCC> 
               <DDD> 
                    <EEE> 
                         <DDD> 
                              <FFF/> 
                         </DDD> 
                    </EEE> 
               </DDD> 
          </CCC> 
     </AAA> 
 
//CCC/descendant::*
로그인 후 복사

상위 항목에 CCC가 있는 모든 요소 선택 elements


   <AAA> 
          <BBB> 
               <DDD> 
                    <CCC> 
                         <DDD/> 
                         <EEE/> 
                    </CCC> 
               </DDD> 
          </BBB> 
    </AAA>
로그인 후 복사

위 내용은 XPath 11개 예시 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿