simplexml_load_file()
Hej.Jeg er i færd med at udtrække nogle data fra et XML dokument som ser således ud:
<?xml version="1.0" encoding="utf8"?>
<component appfolder="app">
<author>
<name>Jeppe Christiansen</name>
<company>SiteTech Webudvikling ApS</company>
<contact>
<email>jeppe[at]sitetech.dk</email>
<phone>000</phone>
<address>xxx</address>
<postal>xxx</postal>
<city>0000</city>
</contact>
</author>
</component>
Jeg gør følgende, for at gemme xml data i et array.
$data = simplexml_load_file('setup.xml);
$author = array(
"author_name" => $data->author->name,
"author_company" => $data->author->company,
"author_email" => $data->author->contact->email,
"author_phone" => $data->author->contact->phone,
"author_address" => $data->author->contact->address,
"author_city" => $data->author->contact->city,
"author_postal" => $data->author->contact->postal);
Med overstående metode havde jeg regnet med at f.eks værdien for $author['author_name'] ville være en streng (I dette tilfælde 'Jeppe Christiansen') - Men tværtimod er det et SimpleXMLElement Object, her er et udklip fra print_r($author):
Array
(
[author_name] => SimpleXMLElement Object
(
[0] => Jeppe Christiansen
)
[author_company] => SimpleXMLElement Object
(
[0] => SiteTech Webudvikling ApS
)
Jeg ved ikke om jeg arbejder forkert med denne simplexml_load_file(); eller om der er andre alternativer til denne. Har dog fundet en løsning til dette, som er at skrive (string) foran objektet, se herunder:
$author = array(
"author_name" => (string)$data->author->name,
"author_company" => (string)$data->author->company,
"author_email" => (string)$data->author->contact->email,
"author_phone" => (string)$data->author->contact->phone,
"author_address" => (string)$data->author->contact->address,
"author_city" => (string)$data->author->contact->city,
"author_postal" => (string)$data->author->contact->postal);
Med overstående vil et udklip fra print_r($author) se ud således:
Array
(
[author_name] => Jeppe Christiansen
[author_company] => SiteTech Webudvikling ApS
Dog syntes jeg det virker som en lidt 'snyde' måde at gøre det på, ved selvfølgelig ikke om dette er det rigtige at gøre - Men vil egentlig bare gerne forhøre mig her, om der er andre måder at få mig streng sat rigtig ind i dette array, uden at det bliver til et multidimentionelt array.
På forhånd mange tak,
Jeppe Christiansen.