Parsing XML data using php to put into mysql database
mysql, parsing, php, xml
Solution
I personally like the normal XMl formatting so I changed it since its a bit more readable but this is how you can use it:
$xmlstr = <<<XML
<?xml version='1.0' standalone='yes'?>
<shop>
<products>
<product>
<id>1</id>
<name>Cornetto</name>
<price>1.20</price>
<description>Traditional Cornetto</description>
</product>
<product>
<id>2</id>
<name>Smarties</name>
<price>1.00</price>
<description>Smarties Icecream</description>
</product>
</products>
<stocks>
<stock>
<id>1</id>
<amount>242</amount>
<price>pounds</price>
</stock>
<stock>
<id>2</id>
<amount>11</amount>
<price>pounds</price>
</stock>
</stocks>
</shop>
XML;
Handling part:
$xml = new SimpleXMLElement($xmlstr);
echo 'single value: <br />';
echo $xml->products->product[0]->id; // get single value
echo '<br /><br />';
//Loop trough multiple products
echo 'multiple values: <br />';
foreach($xml->products->product as $product)
{
echo $product->id.' - ';
echo $product->name.' - ';
echo $product->price.' - ';
echo $product->description;
echo '<br/>';
}
Problem
I have been asked to parse a simple file which is stored as an XML file, the data is to be then put into a mysql database. However I have absolutely no clue what to do and after looking online all the examples given seem either too complicated for my problem or not the right solution. The XML file looks like this: ``` <shop> <products> <product id="1" name="Cornetto" price="1.20" description="Traditional Cornetto" /> <product id="2" name="Smarties" price="1.00" description="Smarties Icecream" /> </products> <stocks> <stock id="1" amount="242" price="pounds" /> <stock id="2" amount="11" price="pounds" /> </stocks> ``` I've tried looking at SimpleXML and I think that's the direction I have to go but I just have no idea. Any help or pointers would be great.