XPath 11 instances

黄舟
Libérer: 2017-02-28 16:40:03
original
1517 Les gens l'ont consulté

Exemple 1
La syntaxe XPath de base est similaire à la localisation de fichiers dans un système de fichiers. Si le chemin commence par une barre oblique /, alors le chemin représente le chemin absolu vers un élément.
/AAA
Sélectionnez l'élément racine AAA

<AAA>           
<BBB/>           
<CCC/>           
<BBB/>           
<BBB/>          
 <DDD>                
 <BBB/>           
 </DDD>           
 <CCC/>      
 </AAA> 
/AAA/CCC
Copier après la connexion

Sélectionnez tous les éléments enfants CCC de AAA

<AAA>           
<BBB/>           
<CCC/>           
<BBB/>           
<BBB/>           
<DDD>                
<BBB/>           
</DDD>           
<CCC/>      
</AAA>  
/AAA/DDD/BBB
Copier après la connexion

Sélectionnez les enfants de AAA Tous les éléments enfants de l'élément DDD

  <AAA> 
          <BBB/> 
          <CCC/> 
          <BBB/> 
          <BBB/> 
          <DDD> 
               <BBB/> 
          </DDD> 
          <CCC/> 
     </AAA>
Copier après la connexion

Exemple 2
Si le chemin commence par une double barre oblique //, cela signifie que toutes les règles du document qui satisfaire la double barre oblique // sont des éléments sélectionnés (quelle que soit la relation hiérarchique) //BBB
Sélectionner tous les éléments BBB

     <AAA> 
          <BBB/> 
          <CCC/> 
          <BBB/> 
          <DDD> 
               <BBB/> 
          </DDD> 
          <CCC> 
               <DDD> 
                    <BBB/> 
                    <BBB/> 
               </DDD> 
          </CCC> 
     </AAA> 
 
//DDD/BBB
Copier après la connexion

Sélectionner tous les éléments BBB dont l'élément parent est DDD

     <AAA> 
          <BBB/> 
          <CCC/> 
          <BBB/> 
          <DDD> 
               <BBB/> 
          </DDD> 
          <CCC> 
               <DDD> 
                    <BBB/> 
                    <BBB/> 
               </DDD> 
          </CCC> 
     </AAA>
Copier après la connexion


Exemple 3
L'astérisque* signifie sélectionner tous les éléments situés par le chemin avant l'astérisque
/AAA/CCC/DDD/*
Sélectionner tous les éléments dont les chemins sont attachés aux éléments /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
Copier après la connexion

Sélectionnez tous les éléments BBB avec 3 éléments ancêtres

     <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> 
 
//*
Copier après la connexion

Sélectionnez tous les éléments

  <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>
Copier après la connexion

Exemple 4
L'expression dans le nombre carré peut spécifier davantage l'élément, où le nombre représente la position de l'élément dans le jeu de sélection, et la fonction last() représente le dernier élément dans l'ensemble de sélection.

/AAA/BBB[1]
Sélectionnez le premier élément enfant BBB de AAA
 

 <AAA> 
          <BBB/> 
          <BBB/> 
          <BBB/> 
          <BBB/> 
     </AAA> 
 
/AAA/BBB[last()]
Copier après la connexion


Sélectionnez le dernier BBB élément enfant de AAA

    <AAA> 
          <BBB/> 
          <BBB/> 
          <BBB/> 
          <BBB/> 
     </AAA>
Copier après la connexion

Exemple 5


//@id
Sélectionner tous les attributs d'identification
 

<AAA> 
          <BBB id = \"b1\"/> 
          <BBB id = \"b2\"/> 
          <BBB name = \"bbb\"/> 
          <BBB/> 
     </AAA> 
 
//BBB[@id]
Copier après la connexion

Sélectionnez l'élément BBB d'attribut id

  <AAA> 
          <BBB id = \"b1\"/> 
          <BBB id = \"b2\"/> 
          <BBB name = \"bbb\"/> 
          <BBB/> 
     </AAA> 
 
//BBB[@name]
Copier après la connexion

Sélectionnez l'élément BBB avec l'attribut de nom

<AAA> 
          <BBB id = \"b1\"/> 
          <BBB id = \"b2\"/> 
          <BBB name = \"bbb\"/> 
          <BBB/> 
     </AAA> 
 
//BBB[@*]
Copier après la connexion

Sélectionnez l'élément BBB avec n'importe quel attribut

<AAA> 
          <BBB id = \"b1\"/> 
          <BBB id = \"b2\"/> 
          <BBB name = \"bbb\"/> 
          <BBB/> 
     </AAA> 
 
//BBB[not(@*)]
Copier après la connexion

Sélectionnez les éléments BBB sans attributs
, la fonction normalize-space supprime les espaces de début et de fin et remplace les chaînes d'espaces consécutives par un seul espace

<AAA> 
          <BBB id = \"b1\"/> 
          <BBB id = \"b2\"/> 
          <BBB name = \"bbb\"/> 
          <BBB/> 
     </AAA>
Copier après la connexion
//BBB[@id='b1']

sélection L'élément BBB
qui contient l'identifiant de l'attribut et sa valeur est 'b1'

Sélectionnez le Élément BBB
qui contient le nom de l'attribut et sa valeur est 'bbb'

 <AAA> 
          <BBB id = \"b1\"/> 
          <BBB name = \" bbb \"/> 
          <BBB name = \"bbb\"/> 
     </AAA> 
 
//BBB[@name=\&#39;bbb\&#39;]
Copier après la connexion

Sélectionnez l'élément BBB qui contient le nom de l'attribut et sa valeur (après avoir supprimé les espaces de début et de fin avec la fonction normalize-space) est 'bbb'

<AAA> 
          <BBB id = \"b1\"/> 
          <BBB name = \" bbb \"/> 
          <BBB name = \"bbb\"/> 
     </AAA> 
 
//BBB[normalize-space(@name)=\&#39;bbb\&#39;]
Copier après la connexion
Exemple 7

count() La fonction peut compter le nombre d'éléments sélectionnés

     <AAA> 
          <BBB id = \"b1\"/> 
          <BBB name = \" bbb \"/> 
          <BBB name = \"bbb\"/> 
     </AAA>
Copier après la connexion
// *[count(BBB)=2]

Sélectionnez les éléments contenant 2 sous-éléments BBB

Sélectionnez un élément avec 2 éléments enfants

     <AAA> 
          <CCC> 
               <BBB/> 
               <BBB/> 
               <BBB/> 
          </CCC> 
          <DDD> 
               <BBB/> 
               <BBB/> 
          </DDD> 
          <EEE> 
               <CCC/> 
               <DDD/> 
          </EEE> 
     </AAA> 
 
//*[count(*)=2]
Copier après la connexion
Sélectionnez un élément avec 3 éléments enfants

 

     <AAA> 
          <CCC> 
               <BBB/> 
               <BBB/> 
               <BBB/> 
          </CCC> 
          <DDD> 
               <BBB/> 
               <BBB/> 
          </DDD> 
          <EEE> 
               <CCC/> 
               <DDD/> 
          </EEE> 
     </AAA> 
 
//*[count(*)=3]
Copier après la connexion

Exemple 8
name La fonction () renvoie le nom de l'élément, la fonction start-with() renvoie true lorsque la première chaîne de paramètre de la fonction commence par le deuxième caractère de paramètre, et la fonction contain() renvoie true lorsque le premier paramètre de chaîne contient. Renvoie true lorsqu'il y a un deuxième paramètre de chaîne.

<AAA> 
          <CCC> 
               <BBB/> 
               <BBB/> 
               <BBB/> 
          </CCC> 
          <DDD> 
               <BBB/> 
               <BBB/> 
          </DDD> 
          <EEE> 
               <CCC/> 
               <DDD/> 
          </EEE> 
     </AAA>
Copier après la connexion
//* [name()='BBB']

Sélectionne tous les éléments nommés BBB (ici est équivalent à //BBB )
 

Sélectionne tous les éléments dont les noms commencent par "B"
 

<AAA> 
          <BCC> 
               <BBB/> 
               <BBB/> 
               <BBB/> 
          </BCC> 
          <DDB> 
               <BBB/> 
               <BBB/> 
          </DDB> 
          <BEC> 
               <CCC/> 
               <DBD/> 
          </BEC> 
     </AAA> 
 
//*[starts-with(name(),\&#39;B\&#39;)]
Copier après la connexion

Sélectionnez tous les éléments dont les noms commencent par "C"
 

<AAA> 
          <BCC> 
               <BBB/> 
               <BBB/> 
               <BBB/> 
          </BCC> 
          <DDB> 
               <BBB/> 
               <BBB/> 
          </DDB> 
          <BEC> 
               <CCC/> 
               <DBD/> 
          </BEC> 
     </AAA> 
 
//*[contains(name(),\&#39;C\&#39;)]
Copier après la connexion

Exemple 9
Plusieurs chemins peuvent être fusionnés en utilisant le séparateur |

<AAA> 
          <BCC> 
               <BBB/> 
               <BBB/> 
               <BBB/> 
          </BCC> 
          <DDB> 
               <BBB/> 
               <BBB/> 
          </DDB> 
          <BEC> 
               <CCC/> 
               <DBD/> 
          </BEC> 
     </AAA>
Copier après la connexion
//CCC | //BBB

Sélectionnez tous les éléments CCC et BBB

Sélectionnez tous les éléments BBB et tous les éléments EEE qui sont les éléments enfants de AAA

<AAA> 
          <BBB/> 
          <CCC/> 
          <DDD> 
               <CCC/> 
          </DDD> 
          <EEE/> 
     </AAA> 
 
/AAA/EEE | //BBB
Copier après la connexion

peuvent être fusionnés. Il n'y a pas de limite au nombre de chemins

<AAA> 
          <BBB/> 
          <CCC/> 
          <DDD> 
               <CCC/> 
          </DDD> 
          <EEE/> 
     </AAA> 
 
/AAA/EEE | //DDD/CCC | /AAA | //BBB
Copier après la connexion

Exemple 10
L'axe enfant (axis) contient les éléments enfants du nœud de contexte. Comme axe par défaut, il peut être ignoré.

   <AAA> 
          <BBB/> 
          <CCC/> 
          <DDD> 
               <CCC/> 
          </DDD> 
          <EEE/> 
     </AAA>
Copier après la connexion
/AAA

est équivalent à /child::AAA<🎜. >

est équivalent à /AAA

 

     <AAA> 
          <BBB/> 
          <CCC/> 
     </AAA> 
 
/child::AAA
Copier après la connexion

/AAA/BBB
est équivalent à /child::AAA/child ::BBB

  <AAA> 
          <BBB/> 
          <CCC/> 
     </AAA>
Copier après la connexion


/child::AAA/child::BBB
Équivalent à /AAA/BBB

     <AAA> 
          <BBB/> 
          <CCC/> 
     </AAA>
Copier après la connexion
Copier après la connexion

/ child::AAA/BBB
Les deux peuvent être fusionnés

     <AAA> 
          <BBB/> 
          <CCC/> 
     </AAA>
Copier après la connexion
Copier après la connexion

Exemple 11
L'axe descendant contient les descendants du nœud de contexte Un descendant fait référence à un enfant. ou un nœud enfant d'un nœud enfant, etc., de sorte que l'axe descendant n'inclut pas les nœuds d'attribut et d'espace de noms.

/descendant::*

Sélectionne tous les descendants de l'élément racine du document, c'est-à-dire. , tous les éléments sont sélectionnés
   <AAA> 
          <BBB/> 
          <CCC/> 
     </AAA>
Copier après la connexion


Sélectionne tous les éléments descendants de /AAA/BBB



Sélectionne tous les éléments avec CCC dans leurs éléments ancêtres
     <AAA> 
          <BBB> 
               <DDD> 
                    <CCC> 
                         <DDD/> 
                         <EEE/> 
                    </CCC> 
               </DDD> 
          </BBB> 
          <CCC> 
               <DDD> 
                    <EEE> 
                         <DDD> 
                              <FFF/> 
                         </DDD> 
                    </EEE> 
               </DDD> 
          </CCC> 
     </AAA> 
 
/AAA/BBB/descendant::*
Copier après la connexion
.php.cn) !


     <AAA> 
          <BBB> 
               <DDD> 
                    <CCC> 
                         <DDD/> 
                         <EEE/> 
                    </CCC> 
               </DDD> 
          </BBB> 
          <CCC> 
               <DDD> 
                    <EEE> 
                         <DDD> 
                              <FFF/> 
                         </DDD> 
                    </EEE> 
               </DDD> 
          </CCC> 
     </AAA> 
 
//CCC/descendant::*
Copier après la connexion

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal