Parse XML
Et forholdsvis simpelt XML-spørgsmål (tror jeg):Jeg har en XML-fil med data på følgende vis:
<item>
<field source="1" caption="Nummer">123456</field>
<field source="2" caption="Navn">Peter Hansen</field>
</item>
Med følgende PHP-kode, henter jeg data ud af XML-filen:
<?php
$file = "xml.xml";
function startElement($parser, $name, $attrs) {
global $rateDate;
if ($name == 'ITEM') {
echo "<br>";
} elseif ($name == 'FIELD') {
echo "".$attrs["SOURCE"].". ";
echo "".$attrs["CAPTION"]."<br>";
}
}
function endElement($parser, $name) {
}
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
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);
?>
Det virker fint nok med at hente source og caption ud, men jeg skal også have værdien med (altså f.eks. "Peter Hansen"). Hvordan gør jeg det?