читать xml-файл с php

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

"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 ([currency] => Объект SimpleXMLElement ([@attributes] => Массив ([имя] => Доллар США [код_альфа] => USD [code_numeric] => 840))

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

Использование 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.

Вы можете использовать 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'); }