Gå til innhold

Sortere og formatere data fra XML-fil


Anbefalte innlegg

Skrevet

Hei!

 

Jeg har en XML-fil som blir gjevnlig oppdatert. Den er på formen:

<tabell>
  <deltaker>
     <navn>navn 1</navn>
     <poeng>100</poeng>
  </deltaker>
  <deltaker>
     <navn>navn 2</navn>
     <poeng>200</poeng>
  </deltaker>
  <deltaker>
     <navn>navn 3</navn>
     <poeng>150</poeng>
  </deltaker>
</tabell>

... og jeg kan ikke endre filen (legge til stylesheet eller lignende) så all behandling for presentasjon må gjøres online.

 

Jeg vil sortere etter <poeng>, og deretter formatere teksten slik jeg vil ha den. Det jeg vil ha ut er en liste á la dette:

Navn 2 - 200 poeng

Navn 3 - 150 poeng

Navn 1 - 100 poeng

 

Hva må gjøres for å oppnå dette? Jeg har ikke peiling på PHP eller lignende...

 

På forhånd takk for hjelpen! :)

Videoannonse
Annonse
Skrevet

<?php
$xml_file = "fila.xml"; // <- Der putter du inn linken til fila
$xml = simplexml_load_file("$xml_file");
foreach ($xml->deltaker as $deltaker) {
$xml_array[$deltaker->navn] = $deltaker->poeng;
}
asort($xml_array);
foreach ($xml_array as $navn as $poeng) {
echo "$navn - $poeng<br />\r\n";
}
?>

Denne skal virke, men da må du ha støtte for PHP5

Skrevet

Judofyr, det virket som en god plan, men jeg fikk følgende feilmelding:

Fatal error: Call to undefined function: simplexml_load_file()

 

Godt mulig jeg ikke har PHP5... :(

Skrevet (endret)

Egentlig var det to feil. Dette var den heller ikke glad i:

foreach ($xml_array as $navn as $poeng)

 

Fjernet "as $poeng" og fikk da

Fatal error: Call to undefined function: simplexml_load_file()
Endret av moskus
Skrevet

Det hørtes også i utgangspunktet genialt ut, men:

XML Parsing Error: no element found

Location: test6.xml

Line Number 3, Column 31:<?php include("score.xml"); ?>

Skrevet

Bruk denne du:

<?php
$xml_file = "fila.xml"; // <- Der putter du inn linken til fila
$xml = simplexml_load_file("$xml_file");
foreach ($xml->deltaker as $deltaker) {
$xml_array[$deltaker->navn] = $deltaker->poeng;
}
asort($xml_array);
foreach ($xml_array as $navn => $poeng) {
echo "$navn - $poeng<br />\r\n";
}
?>

Var en liten feil, der... :blush:

Skrevet

Takker for rettingen, men jeg får fremdeles denne feilen:

"Fatal error: Call to undefined function: simplexml_load_file()"

 

Serveren støtter tydeligvis ikke PHP5... :(

Skrevet
Du må i såfall ha filendelsen .php, og heller legge til <?php header("Content-type: application/xml; charset=UTF-8"); ?> i toppen av fila.

5117749[/snapback]

Takk for nok et innspill, men nei... :(

Skrevet

Ja, har mulighet for det. Men jeg det er tydeligvis ikke sjangs å få dette til å fungere...

 

Har også prøvd å finne noen PHP4 XML-parsere, men jeg får dem ikke til å fungere (godt mulig fordi jeg er fullstendig grønn i PHP).

Skrevet

...og DER fungerte det! Lurer du på hvordan, så trykk her.

 

Løsningen var en kombinasjon av Judofyr og Axentrix.

 

 

Takker alle for mulige løsninger! :)

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...