simplexml_load_string($xml_string);
Hàm này sẽ phân tích nội dung XML trong chuỗi thành các Object.
Để truy cập vào các element của XML ta dùng hàm children như sau:
$data->item->children(uri);
Trong đó uri có thể có hoặc không, đó là một namespace trong xml.
Hàm này sẽ phân tích các element trong xml thành các array.
Từ đây ta sẽ dùng foreach để tiếp tục xử lý cho các attribute trong các element.
Có 2 dạng foreach:
- foreach($d as $v): dùng để lấy các giá trị trong mảng $d
- foreach($d as $k => $v:): dùng để lấy cả key và giá trị trong mảng $d
Trong ví dụ nếu coi mảng to nhất là $d, ta sẽ có như sau:Array ( [condition] => Array ( [text] => SimpleXMLElement Object ( [0] => Partly Cloudy ) [code] => SimpleXMLElement Object ( [0] => 30 ) [temp] => SimpleXMLElement Object ( [0] => 79 ) [date] => SimpleXMLElement Object ( [0] => Mon, 07 Jul 2008 9:54 am EDT ) ) [forecast] => Array ( [Mon] => Array ( [day] => SimpleXMLElement Object ( [0] => Mon ) [date] => SimpleXMLElement Object ( [0] => 7 Jul 2008 ) [low] => SimpleXMLElement Object ( [0] => 69 ) [high] => SimpleXMLElement Object ( [0] => 87 ) [text] => SimpleXMLElement Object ( [0] => Isolated Thunderstorms ) [code] => SimpleXMLElement Object ( [0] => 37 ) ) [Tue] => Array ( [day] => SimpleXMLElement Object ( [0] => Tue ) [date] => SimpleXMLElement Object ( [0] => 8 Jul 2008 ) [low] => SimpleXMLElement Object ( [0] => 71 ) [high] => SimpleXMLElement Object ( [0] => 90 ) [text] => SimpleXMLElement Object ( [0] => Isolated Thunderstorms ) [code] => SimpleXMLElement Object ( [0] => 37 ) ) ) )
foreach($d as $v)
thì $v sẽ là các mảng con bên trong $d.
foreach($d as $k => $v)
thì $k sẽ là 2 string 'condition' hoặc 'forecast'
còn $v sẽ là các mảng có khóa là 'condition' hoặc 'forecast'
như vậy nếu muốn tiếp tục truy cập vào sâu thêm ta sẽ dùng
foreach($v as $v1)
....
Không có nhận xét nào:
Đăng nhận xét