2013-07-29 44 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 CODE

$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對象([貨幣] => SimpleXMLElement對象([@屬性] =>陣列([名稱] =>美元[code_alpha] =>美元[code_numeric] => 840))

我沒有得到的ECHO陳述的任何輸出 我想「使用simplexml_load_file ' 一個試圖從它讀取,但它不起作用。請告訴我應該用什麼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'); 
}