2013-07-29 5 views
2

У меня есть файл XML в этом форматечтения XML-файл с PHP

"note.xml" 
     <currencies> 
    <currency name="US dollar" code_alpha="USD" code_numeric="840" /> 
     <currency name="Euro" code_alpha="EUR" code_numeric="978" /> 

     </currencies> 

PHP КОД

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

echo $xml->name. "<br>";    --no output 
echo $xml->code_alpha. "<br>";  --no output 
echo $xml->code_numeric . "<br>";  --no output 

    print_r($xml); 

выход print_r ($ XML) -> SimpleXMLElement Object ([валюта] => SimpleXMLElement Object ([@attributes] => Array ([имя] => доллар США [code_alpha] => USD [code_numeric] => 840))

я не получил каких-либо выходных данных для заявлений ECHO Я попытался «simplexml_load_file 'a nd пробовал читать, но он не работает. Скажите, пожалуйста, какой код php следует использовать для чтения из этого формата XML-файла.

+0

Почему вы говорите, что 'simplexml_load_file' не работает? сначала покажите нам свой php-код. –

+0

'echo $ xml-> name. "
"; echo $ xml-> code_alpha. "
"; echo $ xml-> code_numeric. «
»; 'я пробовал это в соответствии с W3schools, но получил чистый результат ..... – KMC

+2

никогда, НИКОГДА не см. W3schools снова. Это часто неправильно и вводит в заблуждение. –

ответ

4

Использование DomDocument:

<?php 
$str = <<<XML 
<currencies> 
    <currency name="US dollar" code_alpha="USD" code_numeric="840" /> 
    <currency name="Euro" code_alpha="EUR" code_numeric="978" /> 
</currencies> 
XML; 

$dom = new DOMDocument(); 
$dom->loadXML($str); 

foreach($dom->getElementsByTagName('currency') as $currency) 
{ 
    echo $currency->getAttribute('name'), "\n"; 
    echo $currency->getAttribute('code_alpha'), "\n"; 
    echo $currency->getAttribute('code_numeric'), "\n"; 
    echo "+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+\n"; 
} 
?> 

Live DEMO.

Использование SimpleXML:

<?php 
$str = <<<XML 
<currencies> 
    <currency name="US dollar" code_alpha="USD" code_numeric="840" /> 
    <currency name="Euro" code_alpha="EUR" code_numeric="978" /> 
</currencies> 
XML; 


$currencies = new SimpleXMLElement($str); 
foreach($currencies as $currency) 
{ 
    echo $currency['name'], "\n"; 
    echo $currency['code_alpha'], "\n"; 
    echo $currency['code_numeric'], "\n"; 
    echo "+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+\n"; 
} 
?> 

Live DEMO.

+0

Спасибо, много PRIX .... отлично работает ... – KMC

0

Вы можете использовать DomDocument для достижения этой цели.

Проверить на этот пост http://www.developersnote.com/2013/12/how-to-read-xml-file-in-php.html

$objDOM = new DOMDocument(); 

//Load xml file into DOMDocument variable 
$objDOM->load("../configuration.xml"); 

//Find Tag element "config" and return the element to variable $node 
$node = $objDOM->getElementsByTagName("config"); 

//looping if tag config have more than one 
foreach ($node as $searchNode) { 
    $dbHost = $searchNode->getAttribute('host'); 
    $dbUser = $searchNode->getAttribute('userdb'); 
    $dbPass = $searchNode->getAttribute('dbpass'); 
    $dbDatabase = $searchNode->getAttribute('database'); 
} 
Смежные вопросы