XPath 11-Instanzen

黄舟
Freigeben: 2017-02-28 16:40:03
Original
1501 Leute haben es durchsucht

Beispiel 1
Die grundlegende XPath-Syntax ähnelt der Suche nach Dateien in einem Dateisystem. Wenn der Pfad mit einem Schrägstrich / beginnt, stellt der Pfad den absoluten Pfad zu einem Element dar.
/AAA
Wählen Sie das Stammelement AAA aus

<AAA>           
<BBB/>           
<CCC/>           
<BBB/>           
<BBB/>          
 <DDD>                
 <BBB/>           
 </DDD>           
 <CCC/>      
 </AAA> 
/AAA/CCC
Nach dem Login kopieren

Wählen Sie alle untergeordneten CCC-Elemente von AAA aus

<AAA>           
<BBB/>           
<CCC/>           
<BBB/>           
<BBB/>           
<DDD>                
<BBB/>           
</DDD>           
<CCC/>      
</AAA>  
/AAA/DDD/BBB
Nach dem Login kopieren

Wählen Sie die Kinder aus von AAA Alle untergeordneten Elemente des Elements DDD

  <AAA> 
          <BBB/> 
          <CCC/> 
          <BBB/> 
          <BBB/> 
          <DDD> 
               <BBB/> 
          </DDD> 
          <CCC/> 
     </AAA>
Nach dem Login kopieren

Beispiel 2
Wenn der Pfad mit einem doppelten Schrägstrich // beginnt, bedeutet dies, dass alle Regeln im Dokument das erfüllen den doppelten Schrägstrich // werden ausgewählt (unabhängig von der hierarchischen Beziehung) //BBB
Alle BBB-Elemente auswählen

     <AAA> 
          <BBB/> 
          <CCC/> 
          <BBB/> 
          <DDD> 
               <BBB/> 
          </DDD> 
          <CCC> 
               <DDD> 
                    <BBB/> 
                    <BBB/> 
               </DDD> 
          </CCC> 
     </AAA> 
 
//DDD/BBB
Nach dem Login kopieren

Alle BBB-Elemente auswählen, deren übergeordnetes Element DDD ist

     <AAA> 
          <BBB/> 
          <CCC/> 
          <BBB/> 
          <DDD> 
               <BBB/> 
          </DDD> 
          <CCC> 
               <DDD> 
                    <BBB/> 
                    <BBB/> 
               </DDD> 
          </CCC> 
     </AAA>
Nach dem Login kopieren


Beispiel 3
Das Sternchen* bedeutet, dass alle Elemente ausgewählt werden, die sich im Pfad vor dem Sternchen befinden.
/AAA/CCC/DDD/*
Alle Elemente auswählen, deren Pfade sind an /AAA/CCC/DDD-Elemente angehängt

     <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
Nach dem Login kopieren

Alle BBB-Elemente mit 3 Vorgängerelementen auswählen

     <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> 
 
//*
Nach dem Login kopieren

Alle Elemente auswählen

  <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>
Nach dem Login kopieren

Beispiel 4
Der Ausdruck in der Quadratzahl kann das Element weiter spezifizieren, wobei die Zahl die Position des Elements im Auswahlsatz darstellt und die Funktion last() das letzte Element in darstellt der Auswahlsatz.

/AAA/BBB[1]
Wählen Sie das erste untergeordnete BBB-Element von AAA aus
 

 <AAA> 
          <BBB/> 
          <BBB/> 
          <BBB/> 
          <BBB/> 
     </AAA> 
 
/AAA/BBB[last()]
Nach dem Login kopieren


Wählen Sie das letzte BBB aus untergeordnetes Element von AAA

    <AAA> 
          <BBB/> 
          <BBB/> 
          <BBB/> 
          <BBB/> 
     </AAA>
Nach dem Login kopieren

Beispiel 5


//@id
Alle ID-Attribute auswählen
 

<AAA> 
          <BBB id = \"b1\"/> 
          <BBB id = \"b2\"/> 
          <BBB name = \"bbb\"/> 
          <BBB/> 
     </AAA> 
 
//BBB[@id]
Nach dem Login kopieren

ID-Attribut-BBB-Element auswählen

  <AAA> 
          <BBB id = \"b1\"/> 
          <BBB id = \"b2\"/> 
          <BBB name = \"bbb\"/> 
          <BBB/> 
     </AAA> 
 
//BBB[@name]
Nach dem Login kopieren

BBB-Element mit Namensattribut auswählen

<AAA> 
          <BBB id = \"b1\"/> 
          <BBB id = \"b2\"/> 
          <BBB name = \"bbb\"/> 
          <BBB/> 
     </AAA> 
 
//BBB[@*]
Nach dem Login kopieren

BBB-Element auswählen mit einem beliebigen Attribut

<AAA> 
          <BBB id = \"b1\"/> 
          <BBB id = \"b2\"/> 
          <BBB name = \"bbb\"/> 
          <BBB/> 
     </AAA> 
 
//BBB[not(@*)]
Nach dem Login kopieren

Wählen Sie BBB-Elemente ohne Attribute aus
, die Normalize-Space-Funktion entfernt führende und nachgestellte Leerzeichen und ersetzt aufeinanderfolgende Leerzeichenfolgen durch ein einzelnes Leerzeichen

<AAA> 
          <BBB id = \"b1\"/> 
          <BBB id = \"b2\"/> 
          <BBB name = \"bbb\"/> 
          <BBB/> 
     </AAA>
Nach dem Login kopieren
//BBB[@id='b1']

Auswahl Das BBB-Element
, das die Attribut-ID enthält und dessen Wert „b1“ ist.

Wählen Sie das aus BBB-Element
, das den Attributnamen enthält und dessen Wert „bbb“ ist

 <AAA> 
          <BBB id = \"b1\"/> 
          <BBB name = \" bbb \"/> 
          <BBB name = \"bbb\"/> 
     </AAA> 
 
//BBB[@name=\&#39;bbb\&#39;]
Nach dem Login kopieren

Wählen Sie das BBB-Element aus, das den Attributnamen und seinen Wert enthält (nachdem Sie die führenden und nachfolgenden Leerzeichen mit entfernt haben). die Normalize-Space-Funktion) ist 'bbb'

<AAA> 
          <BBB id = \"b1\"/> 
          <BBB name = \" bbb \"/> 
          <BBB name = \"bbb\"/> 
     </AAA> 
 
//BBB[normalize-space(@name)=\&#39;bbb\&#39;]
Nach dem Login kopieren
Beispiel 7

count() Die Funktion kann die Anzahl der ausgewählten Elemente zählen

     <AAA> 
          <BBB id = \"b1\"/> 
          <BBB name = \" bbb \"/> 
          <BBB name = \"bbb\"/> 
     </AAA>
Nach dem Login kopieren
// *[count(BBB)=2]

Elemente auswählen, die 2 BBB-Unterelemente enthalten

Element mit 2 untergeordneten Elementen auswählen

     <AAA> 
          <CCC> 
               <BBB/> 
               <BBB/> 
               <BBB/> 
          </CCC> 
          <DDD> 
               <BBB/> 
               <BBB/> 
          </DDD> 
          <EEE> 
               <CCC/> 
               <DDD/> 
          </EEE> 
     </AAA> 
 
//*[count(*)=2]
Nach dem Login kopieren
Wählen Sie ein Element mit 3 untergeordneten Elementen aus

 

     <AAA> 
          <CCC> 
               <BBB/> 
               <BBB/> 
               <BBB/> 
          </CCC> 
          <DDD> 
               <BBB/> 
               <BBB/> 
          </DDD> 
          <EEE> 
               <CCC/> 
               <DDD/> 
          </EEE> 
     </AAA> 
 
//*[count(*)=3]
Nach dem Login kopieren

Beispiel 8
Name Die ()-Funktion gibt den Namen des Elements zurück, die start-with()-Funktion gibt true zurück, wenn Die erste Parameterzeichenfolge der Funktion beginnt mit dem zweiten Parameterzeichen, und die Funktion enthält() gibt true zurück, wenn der erste Zeichenfolgenparameter enthält. Gibt true zurück, wenn es einen zweiten Zeichenfolgenparameter gibt.

<AAA> 
          <CCC> 
               <BBB/> 
               <BBB/> 
               <BBB/> 
          </CCC> 
          <DDD> 
               <BBB/> 
               <BBB/> 
          </DDD> 
          <EEE> 
               <CCC/> 
               <DDD/> 
          </EEE> 
     </AAA>
Nach dem Login kopieren
//* [name()='BBB']

Wählt alle Elemente mit dem Namen BBB aus (entspricht hier //BBB)
 

Wählt alle Elemente aus, deren Namen mit „B“ beginnen
 

<AAA> 
          <BCC> 
               <BBB/> 
               <BBB/> 
               <BBB/> 
          </BCC> 
          <DDB> 
               <BBB/> 
               <BBB/> 
          </DDB> 
          <BEC> 
               <CCC/> 
               <DBD/> 
          </BEC> 
     </AAA> 
 
//*[starts-with(name(),\&#39;B\&#39;)]
Nach dem Login kopieren

Alle Elemente auswählen, deren Namen mit „C“ beginnen
 

<AAA> 
          <BCC> 
               <BBB/> 
               <BBB/> 
               <BBB/> 
          </BCC> 
          <DDB> 
               <BBB/> 
               <BBB/> 
          </DDB> 
          <BEC> 
               <CCC/> 
               <DBD/> 
          </BEC> 
     </AAA> 
 
//*[contains(name(),\&#39;C\&#39;)]
Nach dem Login kopieren

Beispiel 9
Mehrere Pfade können mit zusammengeführt werden das Trennzeichen |.

<AAA> 
          <BCC> 
               <BBB/> 
               <BBB/> 
               <BBB/> 
          </BCC> 
          <DDB> 
               <BBB/> 
               <BBB/> 
          </DDB> 
          <BEC> 
               <CCC/> 
               <DBD/> 
          </BEC> 
     </AAA>
Nach dem Login kopieren
//CCC |. //BBB

Wählen Sie alle CCC- und BBB-Elemente aus

Wählen Sie alle BBB-Elemente und alle EEE-Elemente aus Untergeordnete Elemente von AAA



<AAA> 
          <BBB/> 
          <CCC/> 
          <DDD> 
               <CCC/> 
          </DDD> 
          <EEE/> 
     </AAA> 
 
/AAA/EEE | //BBB
Nach dem Login kopieren
können zusammengeführt werden. Es gibt keine Begrenzung für die Anzahl der Pfade



<AAA> 
          <BBB/> 
          <CCC/> 
          <DDD> 
               <CCC/> 
          </DDD> 
          <EEE/> 
     </AAA> 
 
/AAA/EEE | //DDD/CCC | /AAA | //BBB
Nach dem Login kopieren
Beispiel 10

Die untergeordnete Achse (Achse) enthält die untergeordneten Elemente des Kontextknotens. Als Standardachse kann sie ignoriert werden.

/AAA
   <AAA> 
          <BBB/> 
          <CCC/> 
          <DDD> 
               <CCC/> 
          </DDD> 
          <EEE/> 
     </AAA>
Nach dem Login kopieren
entspricht /child::AAA



entspricht /AAA

 

     <AAA> 
          <BBB/> 
          <CCC/> 
     </AAA> 
 
/child::AAA
Nach dem Login kopieren

/AAA/BBB
entspricht /child::AAA/child ::BBB

  <AAA> 
          <BBB/> 
          <CCC/> 
     </AAA>
Nach dem Login kopieren


/child::AAA/child::BBB
Entspricht /AAA/BBB

     <AAA> 
          <BBB/> 
          <CCC/> 
     </AAA>
Nach dem Login kopieren
Nach dem Login kopieren

/ child::AAA/BBB
Beide können zusammengeführt werden

     <AAA> 
          <BBB/> 
          <CCC/> 
     </AAA>
Nach dem Login kopieren
Nach dem Login kopieren

Beispiel 11
Die Nachkommenachse enthält die Nachkommen des Kontextknotens. Ein Nachkomme bezieht sich auf ein Kind Knoten oder ein untergeordneter Knoten eines untergeordneten Knotens usw., sodass die Nachkommenachse keine Attribut- und Namespaceknoten enthält.

/descendant::*

Wählt alle Nachkommen des Dokumentstammelements aus , alle Elemente werden ausgewählt
   <AAA> 
          <BBB/> 
          <CCC/> 
     </AAA>
Nach dem Login kopieren


Wählt alle Nachkommenelemente von /AAA/BBB aus



Wählt alle Elemente mit CCC in ihren Vorgängerelementen aus
     <AAA> 
          <BBB> 
               <DDD> 
                    <CCC> 
                         <DDD/> 
                         <EEE/> 
                    </CCC> 
               </DDD> 
          </BBB> 
          <CCC> 
               <DDD> 
                    <EEE> 
                         <DDD> 
                              <FFF/> 
                         </DDD> 
                    </EEE> 
               </DDD> 
          </CCC> 
     </AAA> 
 
/AAA/BBB/descendant::*
Nach dem Login kopieren
.php.cn)!


     <AAA> 
          <BBB> 
               <DDD> 
                    <CCC> 
                         <DDD/> 
                         <EEE/> 
                    </CCC> 
               </DDD> 
          </BBB> 
          <CCC> 
               <DDD> 
                    <EEE> 
                         <DDD> 
                              <FFF/> 
                         </DDD> 
                    </EEE> 
               </DDD> 
          </CCC> 
     </AAA> 
 
//CCC/descendant::*
Nach dem Login kopieren

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!