2010-11-19 6 views
0

Je veux juste obtenir la valeur de xml node.So je suis le code du document php: SimpleXMLElement :: xpath() .Mais il didn't.Et je pensais que le Xpath est beaucoup plus de désagrément, y at-il beaucoup meilleur moyen d'obtenir le noeud que je veux?!Aide! obtenir la valeur du noeud via php simplexml!

mon code php:

<?php 

/** 
* @author kevien 
* @copyright 2010 
*/ 

$arr = array(); 

$xml = simplexml_load_file("users.xml"); 

$result = $xml->xpath('/users/user[@id="126"]/watchHistory/whMonthRecords[@month="2010-09"]/whDateList/date'); 

while(list(, $node) = each($result)) { 

    array_push($arr, $node); 
} 

print_r($arr); 
?> 

il retourne:

Array ([0] => SimpleXMLElement Object ([0] => 02) [1] => SimpleXMLElement Object ([0] => 03) [2] => SimpleXMLElement Object ([0] => 06) [3] => SimpleXMLElement Object ([0] => 10) [4] => SimpleXMLElement Object ([0] => 21)) 

ma part de users.xml:

<users> 
    <user id="126"> 
     <name>老黄牛三</name> 
     <watchHistory> 
      <whMonthRecords month="2010-09"> 
       <whDateList month="2010-09"> 
        <date>02</date> 
        <date>03</date> 
        <date>06</date> 
        <date>10</date> 
        <date>21</date> 
       </whDateList> 
         </<whMonthRecords> 
       </<watchHistory>> 
     </user> 
    </users> 

Merci beaucoup !!

Répondre

3

Remplacez votre boucle entière avec:

foreach ($result as $node) { 
    $arr[] = (string)$node; 
} 

ou même:

$result = array_map('strval', $result);