2013-09-14 3 views
1

У меня есть xml-файл, который состоит из названия страны и ее кода.разбор XML-файла в php

<country> 
    <name>ALBANIA</name> 
    <code>AL</code> 
</country> 

<country> 
    <name>ALGERIA</name> 
    <code>DZ</code> 
</country> 

<country> 
    <name>AMERICAN SAMOA</name> 
    <code>AS</code> 
</country> 

Сейчас я использую следующий код PHP, чтобы хранить их в массив и печать (country.xml файл находится в той же папке, как этот PHP код.

$countries = array(); 
$file = new SimpleXMLElement(__DIR__ . '/country.xml', null, true); 
foreach ($file->country as $country) { 
     $name = trim($country['name']); 
    $code = trim(strtoupper($country['code'])); 

    $countries[$code] = $name; 
    echo $code; 
} 

но это PHP код показывает пустой стр. Может ли кто-нибудь наставит меня, где я делаю ошибку и помочь мне исправить его или дать некоторые лучший метод для разбора файла XML.

ответ

0

simplexml_load_file() в PHP будет делать эту работу.

<?php 
$xml = simplexml_load_file('country.xml'); 
$i=0; 

$countryName=array(); 
$countryCode=array(); 

foreach($xml as $k=>$v) 
{ 
    $countryName[$i] = (string) $xml->country[$i]->name; 
    $countryCode[$i] = (string) $xml->country[$i]->code; 
$i++; 
} 

print_r($countryName); 
print_r($countryCode); 

?> 
+0

Мне также нужно сохранить название страны в массиве массива [code] = name. – prattom

+0

@ user2673943, Отредактирован ответ. –

+1

Спасибо Shankar за решение моей проблемы. – prattom