Avatar billede refshauge Nybegynder
09. december 2004 - 12:58 Der er 5 kommentarer og
1 løsning

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?
Avatar billede coderdk Praktikant
09. december 2004 - 13:08 #1
Det lader til at du mangler en http://dk2.php.net/xml_set_character_data_handler
Avatar billede refshauge Nybegynder
09. december 2004 - 13:15 #2
Kan du uddybe lidt ?
Avatar billede coderdk Praktikant
09. december 2004 - 13:20 #3
Øhm ja :) character data handleren er den der skal håndtere det der står imellem, <x>hej</x> i dette tilfælde "hej" :) Der er vist et ekempel eller to der!
Avatar billede coderdk Praktikant
09. december 2004 - 13:20 #4
Fungerer på samme måde som xml_set_element_handler ;)
Avatar billede refshauge Nybegynder
09. december 2004 - 15:49 #5
Det virker. Tak for hjælpen.
Vil du lægge et svar ?
Avatar billede coderdk Praktikant
09. december 2004 - 16:13 #6
S'føli :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester