Avatar billede tirdyr Nybegynder
06. august 2006 - 23:58 Der er 16 kommentarer og
1 løsning

xml data skal udtraekkes

jeg har en xml fil der ser nogenlunde saadan ud:

<?xml version="1.0" encoding="iso-8859-1" ?>
- <ItemList>
    <item name="Flyet" id="001" />
    <item name="Skoen" id="002" />
    <item name="Bilen" id="003" />
    <item name="Huset" id="004" />
  </ItemList>

det jeg gerne vil er at jeg kender navnet (det praecise navn) paa itemet, men jeg skal bruge nummeret.. hvordan finder jeg det(og for det gemt paa en eller anden snild maade, saa jeg kan bruge det lidt senere paa siden??
Avatar billede jakobdo Ekspert
07. august 2006 - 08:31 #1
Hvilken version af php bruger du?
Avatar billede tirdyr Nybegynder
07. august 2006 - 08:37 #2
PHP v. 4.3.10
Avatar billede jakobdo Ekspert
07. august 2006 - 09:22 #3
Har du kigget i denne "tråd": http://dk.php.net/xmlparse
Avatar billede tirdyr Nybegynder
07. august 2006 - 10:43 #4
ja, og jeg synes ikke umiddelbart der er hvad jeg soger
Avatar billede gizmo-gizmo Nybegynder
07. august 2006 - 13:13 #5
Hvis ud ved at dine item tags ser sådan ud, så kan du gøre det på denne lette måde:

$str = file_get_contents("DINXMLFIL.XML");

preg_match_all("/<item name=\"([^\"]*)\" id=\"([^\"]*)\" \/>/si", $str, $regs);
foreach($regs[1] as $key => $val) {
  $ar[$val] = $regs[2][$key];
}

echo "<pre>";
print_r($ar);
echo "</pre>";
Avatar billede tirdyr Nybegynder
07. august 2006 - 13:22 #6
hmm..

$regs er min search string ikke sandt?
og $val vil vaere mit resultat? eller vil det vaere $key?
Avatar billede jakobdo Ekspert
07. august 2006 - 13:25 #7
Sikker på du har prøvet dig lidt frem?

Se her: http://www.codebreaker.dk/exp/724564exp.php
Avatar billede gizmo-gizmo Nybegynder
07. august 2006 - 13:29 #8
tirdy: Du vil bare kunne sige f.eks.:

$str = file_get_contents("DINXMLFIL.XML");
preg_match_all("/<item name=\"([^\"]*)\" id=\"([^\"]*)\" \/>/si", $str, $regs);
foreach($regs[1] as $key => $val) {
  $ar[$val] = $regs[2][$key];
}

echo $ar['Flyet'] . "<br>";
echo $ar['Bilen'];
Avatar billede tirdyr Nybegynder
07. august 2006 - 13:34 #9
gizmo>> ja det er nemlig praecis det jeg er ude efter.. men jeg er lidt bekymret for performance hvis nu vi siger at der ligger 10.000 items i min XML fil?

jakob>> ja den skriver den godt nok min xml fil ud paa siden, men jeg skal ikke bare have den skrevet, jeg skal have data ud fra den.. som gizmo er inde paa her..
Avatar billede gizmo-gizmo Nybegynder
07. august 2006 - 13:38 #10
Jakobdo's metode bedst hvis din xml-fil er mere kompleks end du har givet et eksempel på, eller hvis du ikke ved præcis hvordan den ser ud.

Rent performancemæssigt tror jeg intet der er i vejen med min løsning.
Avatar billede jakobdo Ekspert
07. august 2006 - 13:39 #11
tirdyr: du skal jo arbejde dig ud i objekterne!
Se sourcen er der også nu! http://www.codebreaker.dk/exp/724564exp.php
Avatar billede tirdyr Nybegynder
07. august 2006 - 13:51 #12
gizmo>> det ser ud til at din metode vil virke paa mit nuvaerende problem, problemet er bare at den vil kraeve en del aendring hvis der bare er en lille aendring i xml filen (det er som i nok har gaettet en xml fil jeg faar fra et andet sted, og vil bare bruge det til noget syndication) og det kunne jo godt taenkes at der kom en lille aendring i filen en gang iemllem..

jakob>> jeg maa sige at det ser laekkert ud.. men jeg kan ikke se hvor jeg laver mit input, dvs, hvis jeg nu vil have numeret paa exempelvis huset
huset kommer fra min $_get[item] (fra formen paa forrige side, og id'et skal gerne gemmes i $ID.. kan du give et exempel paa det?
Avatar billede tirdyr Nybegynder
07. august 2006 - 14:04 #13
og en anden ting.. (hmm jeg kommer til at virke helt kreavende her .. det er ikke meningen) den du har linket til, ser kun ud til at kunn vise 257 poster, og det er ikke i naerheden af alle sammen..
Avatar billede tirdyr Nybegynder
07. august 2006 - 23:28 #14
gad vide om jeg skraemte dem vaek?.. jeg vil saette stor pris paa lidt hjaelp her..
Avatar billede jakobdo Ekspert
07. august 2006 - 23:35 #15
Jeg forstod ikke helt...
Hvis du brugte min kode på en stor xml fil, viser den så kun 257 poster?
Avatar billede tirdyr Nybegynder
08. august 2006 - 03:06 #16
jep.. du kan selv tjekke det her: http://www.tobenski.dk/test.php
og xml filen http://www.tobenski.dk/itemlist.xml
Avatar billede tirdyr Nybegynder
10. august 2006 - 19:52 #17
gizmo>> jeg gav dig point fordi jeg har valgt at bruge dn losning..

men jeg er dog lobet ind i et problem, den gemmer ikke alle poster.. der mangler ca 5000 poster i den.. og det ser ud til at vaere de 5000 sidste uden at jeg dog har gennem tjekket det...

nogen ideer om hvorfor? er der en begraensning i hvor lang en string kan vaere? eller noget i den stil.
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