2017-10-13 100 views
1

如何獲取XML元素中屬性的值?如何獲取PHP中XML元素內的屬性值?

例如: 我想要得到的屬性類別的價值。

<bookstore> 
    <book category="cooking"> 
    <title lang="en">Everyday Italian</title> 
    <author>Giada De Laurentiis</author> 
    <year>2005</year> 
    <price>30.00</price> 
    </book> 
+0

http://php.net/manual/en/book.simplexml.php可以做到這一點。 – apokryfos

回答

0

使用SimpleXML擴展:

<?php 
$xml = '<bookstore> 
<book category="cooking"> 
    <title lang="en">Everyday Italian</title> 
    <author>Giada De Laurentiis</author> 
    <year>2005</year> 
    <price>30.00</price> 
</book> 
</bookstore>'; 
$doc = simplexml_load_string($xml); 
echo $doc->book->attributes()->category; // cooking 
echo $doc->book->title.PHP_EOL; // Everyday Italian 
echo $doc->book->title->attributes()->lang.PHP_EOL; // en 

Demo

每一個元素都將被設置爲根對象上的屬性讓你直接訪問。在這種情況下,您可以使用attributes()來獲取book元素的屬性。

您可以在示例中看到,您可以繼續按照相同的方式瀏覽關卡:要獲得book中的lang屬性,請使用$doc->book->title->attributes()->lang

0
$xml=simplexml_load_file("yourfile.xml"); 
echo $xml->book[0]['category']; 
0

PHP在可用於解析XML文件的標準庫中提供了一個SimpleXML類。

$data = <<<END 
    <bookstore> 
    <book category="cooking"> 
    <title lang="en">Everyday Italian</title> 
    <author>Giada De Laurentiis</author> 
    <year>2005</year> 
    <price>30.00</price> 
    </book> 
</bookstore> 
END; 


$xml = simplexml_load_string($data); 
$categoryAttributes = $xml->xpath('/bookstore/book/@category'); 
echo $categoryAttributes[0];