Avatar billede danskweb Nybegynder
22. december 2006 - 08:31 Der er 11 kommentarer

Indlæs XML fil i variabel

Hej!
Hvorledes kan jeg indlæse en ekstern XML fil (fil.xml) i en variabel? Således at jeg kan begynde at finde de data frem jeg ønsker. php.net gav mig ikke den ønskede hjælp.
Avatar billede sw_red_6 Nybegynder
22. december 2006 - 09:38 #1
har du prøvet at kigge på funktionerne her: http://dk2.php.net/manual/en/ref.xml.php
Kig lidt på eksempel 1 og 2 det er vidst hvad du søger..?
Avatar billede danskweb Nybegynder
22. december 2006 - 19:07 #2
Muligvis mig der er dybt dum, men kan ikke finde mening med det. Prøv f.eks. Denne xml fil http://www.nationalbanken.dk/dndk/valuta.nsf/valuta.xml:

<?php
$file = "http://www.nationalbanken.dk/dndk/valuta.nsf/valuta.xml";
$depth = array();

function startElement($parser, $name, $attrs)
{
  global $depth;
  for ($i = 0; $i < $depth[$parser]; $i++) {
      echo "  ";
  }
  echo "$name<br>";
  $depth[$parser]++;
}

function endElement($parser, $name)
{
  global $depth;
  $depth[$parser]--;
}

$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);
?>

Jeg får blot dette ud:
EXCHANGERATES
DAILYRATES
CURRENCY
CURRENCY
CURRENCY
CURRENCY
CURRENCY
CURRENCY
CURRENCY
CURRENCY
CURRENCY
CURRENCY
CURRENCY
CURRENCY
CURRENCY
CURRENCY
......

Hvor er alle beløbene henne? Det giver mig kun strukturen?
Avatar billede windcape Praktikant
22. december 2006 - 19:13 #3
PHP5:

www.php.net/DOM
www.php.net/Simplexml

(Begge er indbygget i PHP5 core, så altid muligt, på alle serverer).

PHP4:

Opgrader til PHP5, det er dumt at blive ved gamle versioner, speciel hvis man ønsker at benytte f.eks. XML til noget som helst fornuftigt.

Og når det er sagt, så er din kode ikke særlig smart :-)
Avatar billede windcape Praktikant
22. december 2006 - 19:16 #4
prøv f.eks.

<?php

$url = 'http://www.nationalbanken.dk/dndk/valuta.nsf/valuta.xml';

$xml = new SimpleXML($url,true);
foreach($xml->dailyrates->currency as $currency) {
    echo $currency['desc'].' = '.$currency['rate'].' <br/>';
}

?>
Avatar billede danskweb Nybegynder
22. december 2006 - 19:25 #5
Hej Windcape
Jeg har desværre ikke mulighed for at opdatere min php version :)

Følgende fejl opstår når jeg kører scriptet:
Fatal error: Cannot instantiate non-existent class: simplexml in /home/web/gb1404/book/test4.php on line 5
Avatar billede windcape Praktikant
22. december 2006 - 19:29 #6
ja, hvilket betyder du bruger PHP4. Jeg vil anbefale at du kigger nærmere på http://pear.php.net/package/XML_Parser så :)

Men stadigvæk... få et bedre webhotel , php6 er 50% færdigt.
Avatar billede windcape Praktikant
22. december 2006 - 19:39 #7
Avatar billede danskweb Nybegynder
23. december 2006 - 13:50 #8
Det må være muligt at løse det selvom jeg ikke har PHP5, så må det bare blive en mindre smart løsning? Jeg er faktisk bare interesseret i at få det til at virke?
Avatar billede windcape Praktikant
28. december 2006 - 22:47 #9
Du har ikke løst mine 2 sidste posts ? det var PHP4 løsninger.
Avatar billede atheist Nybegynder
02. oktober 2007 - 02:04 #10
Avatar billede atheist Nybegynder
17. januar 2011 - 17:25 #11
lukker
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