2010-11-19 4 views
0

Я просто хочу получить значение из узла xml. Итак, я следую коду из документа php: SimpleXMLElement :: xpath(). Но это не так. И я думал, что Xpath гораздо больше неудобств, есть ли много лучший способ получить узел, который я хочу?!Помощь! получить значение узла через php simplexml!

мой 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); 
?> 

возвращается:

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)) 

свою часть 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> 

Спасибо очень много !!

ответ

3

Заменить всю петлю:

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

или даже:

$result = array_map('strval', $result); 
Смежные вопросы