Reputation: 371
I have a xml file as follows:
<?xml version="1.0" ?>
<shop version="2.0" shop-name="XYZ">
<category name="FOO1">
<subcategory name="Foobar1">
<product name="Productname1" id="1">
<supplier name="XXX" logo="XXX.gif" />
<desc>DESC</desc>
</product>
<product name="Productname2" id="2">
...
</product>
</subcategory>
</category>
</shop>
And i would like to get attribute value of shop element - exactly shop-name
I used simplexml in php:
<?php
$dataXML=simplexml_load_file("data.xml");
$a=$dataXML->shop[0]["shop-name"];
echo $a;
?>
as a result I get nothing. Have any idea what is wrong?
Upvotes: 0
Views: 159
Reputation: 8020
Those are attributes, so you need to access them correctly with attributes()
method:
$data = simplexml_load_file( 'data.xml' );
$attributes = $data->attributes();
echo $attributes['shop-name'];
Or you can access it directly, since it's the main attribute
:
$data = simplexml_load_file( 'data.xml' );
echo $data['shop-name'];
Upvotes: 1
Reputation: 1393
use the getAttribute() methdo to read attribute name.
<?php
$dataXML = simplexml_load_file("data.xml");
$shopName = $dataXML->getAttribute("shop-name");
echo $shopName;
?>
Upvotes: 2