2010-11-22 4 views
1

je suis tombé sur cette XPath dans l'un de mon code étude:S'il vous plaît aidez-moi à comprendre ce XPath

count($recprv//*[local-name()='provider_email' or local-name()='provider_fax' 
    or local-name()='provider_phone' or local-name()='provider_phone_ext' ]) 

J'ai maintenant du mal à comprendre ce que cela signifie, je pense personnellement qu'il dit: » en le fichier xml recprv, compte le nombre d'éléments qui contiennent provider_email ou contient provider_fax ou contient provider_phone ou contient provider_phone_ext

Donc, il va fondamentalement passer par le fichier xml recprc et compter tous les enregistrements? En outre, j'aimerais savoir ce qui est compté EXACTEMENT dans la fonction de comptage Merci beaucoup de m'avoir aidé ici!

+1

Bonne question, +1. Voir ma réponse pour une explication détaillée. –

+0

Ma réponse vous a-t-elle été utile? –

+0

@Dimitre: Oui, merci beaucoup. – Kevin

Répondre

8
count($recprv//* 
      [local-name()='provider_email' 
      or 
      local-name()='provider_fax' 
      or 
      local-name()='provider_phone' 
      or 
      local-name()='provider_phone_ext' 
      ] 
     ) 

Cela signifie:

Donne-moi le nombre de tous des éléments qui sont contenus dans l'un des arbres contenus dans la variable$recprv, dontlocal-name() (la partie du nom qui suit le préfixe d'espace de nommage, si tel est présente ou le nom entier non) est l'un desprovider_email, provider_fax, provider_phoneouprovider_phone_ext.

La variable $recprv doit contenir un ou plusieurs éléments (ensemble de nœuds) et chacun de ces éléments est le sommet d'un arbre basé sur la relation parent -> enfants.

+0

Bonne réponse, mais je ne comprends toujours pas la différence entre les éléments, les nœuds et les arbres, pourriez-vous élaborer? THX. – Kevin

+1

@Robert: Vous devez lire un bon livre XPath, ces questions ne peuvent pas être répondues juste dans un commentaire ou même en réponse à une question séparée. Il faut lire et beaucoup de pratique. –

2

$ recprv est une variable de sorte que le XPATH agit sur l'ensemble de nœuds contenu dans la variable

La fonction local-name() renvoie la partie du nom d'élément avec sortie l'URI d'espace de nom donc par exemple ils correspondent aux noms des éléments tels que <provider_phone /> ainsi que <xyz:provider_phone />

Questions connexes