Avatar billede -zonic- Nybegynder
15. juni 2008 - 23:59 Der er 26 kommentarer og
1 løsning

parsing af xml fil til php?

hejsa...

jeg skal gerne have parset denne fil, så jeg kan bruge de data der kommer ud af den..

http://livescore.tournamentsoftware.com/livescore.aspx?id=21955

er der nogen der kan vise mig hvordan jeg får det til at virke... den nægter at åbne filen med de ting jeg har prøvet... men hvis jeg bare åbner linket i min browser, kan jeg sagtens gemme filen og se indholdet... jeg skal bare have indholdet parset så jeg kan bruge de data istedet... :)
Avatar billede arne_v Ekspert
16. juni 2008 - 00:09 #1
Nu skriver du jo ikke hvad du vil have ud af det, men nedenstående kode
udskriver værdien af alle N tags:

<?php
$doc = new DOMDocument();
$doc->preserveWhiteSpace = FALSE;
$doc->load('http://livescore.tournamentsoftware.com/livescore.aspx?id=21955');
$alln = $doc->getElementsByTagName('N');
foreach($alln as $n) {
    echo $n->nodeValue . "<br>\n";
}
?>
Avatar billede -zonic- Nybegynder
16. juni 2008 - 00:14 #2
jeg skal bare have alt skrevet ud i filen...

men dit script virker ikke..

http://www.skovbakken-badminton.dk/includes/livescore.php
Avatar billede arne_v Ekspert
16. juni 2008 - 00:28 #3
1)  Hvis du cil skrive alt ud - hvorfor vil du så parse den ?

2)  Koden virker fint hos mig !  Hvilken PHP version bruger du ?
Avatar billede -zonic- Nybegynder
16. juni 2008 - 00:31 #4
jeg bruger version 4.xx

meningen er at jeg skal have de forskellige livescores ud, så jeg kan udskrive dem og evt gemme dem i min mysql..
Avatar billede -zonic- Nybegynder
16. juni 2008 - 00:34 #5
Avatar billede -zonic- Nybegynder
16. juni 2008 - 00:34 #6
har prøvet på en server med php 5 også.. uden held...

www.stephan.lir.dk/livescore.php

www.stephan.lir.dk/phpinfo.php
Avatar billede arne_v Ekspert
16. juni 2008 - 00:50 #7
Jeg gaetter paa at den ikke virker paa din 5'er p.g.a.:
--disable-dom' '--disable-simplexml' '--disable-libxml' '--disable-xmlreader' '--disable-xmlwriter'

jeg proever lige at finde en PHP 4 løsning.
Avatar billede -zonic- Nybegynder
16. juni 2008 - 00:51 #8
nice... mange tak :)
Avatar billede -zonic- Nybegynder
16. juni 2008 - 00:52 #9
er det noget jeg evt kan rette i på 5 versionen? det er en webserver der kører på min netværkshardisk (Synology DS106e)  så jeg burde måske kunne rette i indstillinger?
Avatar billede arne_v Ekspert
16. juni 2008 - 02:05 #10
Det driller lidt med at få DOM op at køre på min PHP 4, men inden jeg bruger for meget tid på
det - har du XML DOM på din PHP 4 ?
Avatar billede arne_v Ekspert
16. juni 2008 - 04:39 #11
PHP 4:

<?php
$doc = domxml_open_file('http://livescore.tournamentsoftware.com/livescore.aspx?id=21955');
$alln = $doc->get_elements_by_tagname('N');
foreach($alln as $n) {
    $t = $n->first_child();
    if($t != NULL) {
        echo $t->node_value() . "<br>\n";
    }
}
?>
Avatar billede -zonic- Nybegynder
16. juni 2008 - 09:57 #12
Avatar billede arne_v Ekspert
17. juni 2008 - 03:11 #13
Den er vist svær at troubleshoote uden at have din kode.

Du har fået fat i XML DOM. Men der sker en eller anden IO fejl.
Avatar billede -zonic- Nybegynder
17. juni 2008 - 10:44 #14
nu ved jeg ikke helt vhad du tænker på, om det er fordi du ikke ved hvilke linier der står hvor?

koden er her: www.skovbakken-badminton.dk/live.jpg
Avatar billede arne_v Ekspert
18. juni 2008 - 04:27 #15
Næ. Fordi jeg troede at din kode var anderledes end min, da min kode virker hos mig.

Men det er den jo ikke.

Sidder du bag ved en proxy server ?
Avatar billede -zonic- Nybegynder
18. juni 2008 - 20:18 #16
næh.. det tror jeg ikke....har du et link til hvo din kode virker?
Avatar billede arne_v Ekspert
19. juni 2008 - 02:42 #17
No. Jeg ville automatisk fravælge et web hotel som tilbød PHP 4. Jeg har kun en
gammel installation liggende på min hard disk.
Avatar billede -zonic- Nybegynder
19. juni 2008 - 13:25 #18
jeg har fået det til at virke nu.. det var min udbyder der ikke tillod at hive trafik ind fra andre sider.. det virker nu...

men hvis jeg nu vil have flere variable ind, kan jeg så gøre det på en måde... hvis jeg nu vil have <P1> og <P2>  ? kan det laves i samme løkke?
Avatar billede -zonic- Nybegynder
19. juni 2008 - 13:25 #19
i øvrigt prøv lige med http://livescore.tournamentsoftware.com/livescore.aspx?id=22171 <- i load.. der er lidt flere data!
Avatar billede -zonic- Nybegynder
19. juni 2008 - 13:27 #20
dit script ligner nemlig meget det her.:
http://www.geekpedia.com/tutorial156_How-to-read-XML-using-PHP-DOM.html

men kan ikke få det til at virke som de gør det..
Avatar billede arne_v Ekspert
20. juni 2008 - 04:07 #21
Artiklen er om PHP 5 måden at gøre det på !
Avatar billede arne_v Ekspert
20. juni 2008 - 04:15 #22
Der er flere måder at gribe det an på.

Men nested get elements by tag name er en måde.

Eksempel:

<?php
$doc = domxml_open_file('http://livescore.tournamentsoftware.com/livescore.aspx?id=21955');
$allc = $doc->get_elements_by_tagname('C');
foreach($allc as $c) {
    $alln = $c->get_elements_by_tagname('N');
    foreach($alln as $n) {
        $t = $n->first_child();
        if($t != NULL) {
            echo "N=" . $t->node_value() . "<br>\n";
        }
    }
    $allwss = $c->get_elements_by_tagname('WSS');
    foreach($allwss as $wss) {
        $t = $wss->first_child();
        echo "WSS=" . $t->node_value() . "<br>\n";
    }
}
?>
Avatar billede -zonic- Nybegynder
20. juni 2008 - 13:01 #23
tak for hjælpen :) I get it!

smid et svar!!
Avatar billede -zonic- Nybegynder
20. juni 2008 - 13:14 #24
lige til sidst... jeg kan ikke rigtigt få T1 og T2 værdierne ud her? howto? :)

<SCS>
    <SC T1="0" T2="0"/>
    <SC T1="0" T2="1"/>
</SCS>
Avatar billede arne_v Ekspert
22. juni 2008 - 03:25 #25
Det er atributter ikke elementer.

Følgende henter ID attributten på SS elementet:

<?php
$doc = domxml_open_file('http://livescore.tournamentsoftware.com/livescore.aspx?id=22171');
$allc = $doc->get_elements_by_tagname('C');
foreach($allc as $c) {
    $alln = $c->get_elements_by_tagname('N');
    foreach($alln as $n) {
        $t = $n->first_child();
        if($t != NULL) {
            echo "N=" . $t->node_value() . "<br>\n";
        }
    }
    $allwss = $c->get_elements_by_tagname('WSS');
    foreach($allwss as $wss) {
        $t = $wss->first_child();
        echo "WSS=" . $t->node_value() . "<br>\n";
    }
    $allss = $c->get_elements_by_tagname('SS');
    foreach($allss as $ss) {
        echo "SS ID=" . $ss->get_attribute('ID') . "<br>\n";
    }
}
?>
Avatar billede arne_v Ekspert
29. juni 2008 - 05:27 #26
og et svar fra mig
Avatar billede -zonic- Nybegynder
29. juni 2008 - 15:13 #27
mange tak for hjælpen!
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