Problème xpath : compter le nombre de noeud ?

Problème xpath : compter le nombre de noeud ? - PHP - Programmation

Marsh Posté le 03-06-2004 à 15:59:37    

Hello
 
Bon ca fait un petit moment que je tourne en rond et que je trouve pas la solution pour compter le nombre noeud spécifié d'un doc xml en php.
Voila ce que je fait
 
 
La fonction permettant de compter le nombre de noeud $chemin_xpath dans le $fichier

Code :
  1. function compte_noeud($fichier,$chemin_xpath){
  2. //fichier à modifier  
  3. $xml_file = $fichier;
  4. //création d'un objet Dom à partir du fichier  
  5. $doc_xml = domxml_open_file($xml_file);
  6. $xpath = $doc_xml->xpath_new_context();
  7. $compte = xpath_eval($xpath,"count(".$chemin_xpath." )" );
  8. $nbre_noeud = $compte->value;
  9. return $nbre_noeud;
  10. }


 
Voila comme j'appel cette fonction

Code :
  1. $nombre_noeud=compte_noeud("monfichier.xml","//balise1/balise1" );
  2. echo"<br>Il y a $nombre_noeud noeud <br>";


 
Il me marque :"ll y a 0 noeud" alors qu'il devrait en trouver un !
 
Sachant que mon expression xpath est juste vu qu'elle est bien evalué avec xmlspy.
 
Cela peut venir d'ou ?


Message édité par Phive le 03-06-2004 à 16:00:47

---------------
/!\ Post powered by Phive-online.com /!\
Reply

Marsh Posté le 03-06-2004 à 15:59:37   

Reply

Marsh Posté le 03-06-2004 à 17:37:04    

alors personne pour me filer un coup de main ?

Reply

Marsh Posté le 03-06-2004 à 17:38:27    

juste pour infi je me suis aidé de ce script
 

Code :
  1. p = xslt_create();
  2.    $o += 0;
  3.    $s =  '';
  4.    $s .= "<query type='create'>";
  5.    $s .=    "<resourceClass id='12345678901234567890' displayName='DAISY'>";
  6.    $s .=        "<group family='global' id='kind'>";
  7.    $s .=            "<node id='NODE_A' displayName='Red Ferrari' description='Red always goes faster'/>";
  8.    $s .=        "</group>";
  9.    $s .=    "</resourceClass>";
  10.    $s .=    "<resourceClass id='12345678901234567890' displayName='BETTY'>";
  11.    $s .=        "<group family='global' id='kind'>";
  12.    $s .=            "<node id='NODE_B' displayName='Blue Porsche' description='But Porsches are a drivers car'/>";
  13.    $s .=        "</group>";
  14.    $s .=    "</resourceClass>";
  15.    $s .= "</query>";
  16.    $dom=xmldoc($s);
  17.    $ctx=xpath_new_context($dom);
  18.    $query_xo = xpath_eval($ctx,"count(/query/resourceClass)" );
  19.    $num_rc = $query_xo->value;
  20.    echo("<BR>There are $num_rc classes in this list" );


 
Sachant que cette fonction marche tres tres bien.
Je pense que le truc vient du fait que sont "fichier xml" est une chaine de char alors que ke moi c'est vraiment un fichier que j'ouvre en tant objet dom

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed