PHP læse XML med attributes
Jeg skal have php til at indlæse nogle attributes fra xml-filen bolig.xml, som ser således ud:<?xml version="1.0" encoding="utf-8" ?>
<galleri>
<foto url="xml/bolig/1.jpg" overskrift="x" bodytekst="x">
[...]
<foto url="xml/bolig/9.jpg" overskrift="x" bodytekst="x">
</galleri>
Tidligere har jeg brugt følgende til at indlæse værdier mellem tags'ene f.eks. <tag>hej</tag>.
$current_tag = "";
function startElement($parser, $name, $attrs)
{
global $current_tag;
if($name == "URL") $current_tag = $name;
if($name == "PHOTO") $current_tag = $name;
if($name == "OVERSKRIFT") $current_tag = $name;
}
function endElement($parser, $name)
{
global $current_tag;
$current_tag = "";
}
function characterData($parser, $data)
{ global $current_tag, $url, $photo, $overskrift;
if($current_tag == "URL") $url = $data;
if($current_tag == "PHOTO") $photo = $data;
if($current_tag == "OVERSKRIFT") $overskrift = $data;
}
function parseXmlFile()
{
$file = "../xml/bolig.xml";
$xml_parser = xml_parser_create();
xml_parser_set_option($xml_parser,XML_OPTION_CASE_FOLDING,true);
xml_parser_set_option($xml_parser,XML_OPTION_TARGET_ENCODING,'ISO-8859-1');
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
if (!($fp = fopen($file, "r")))
{
die("could not open XML input");
}
while ($data = fread($fp, 4096)) {
if (!xml_parse($xml_parser, $data, feof($fp)))
{
die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
}
}
xml_parser_free($xml_parser);
}
Kan jeg genbruge dette stykke kode til at læse bolig.xml og hvis ja, hvordan?