[ specs ] [ Tweaker gallery ]
paar keer F5 als je z'n page tegen komt en hij werkt wel
Verwijderd
Behalve bij de search daar blijf je eindeloos #55 krijgen. maare tenzij het erg veel haast heeft laat het gewoon ff liggen tot de search het wel doet, want ik weet zeker dat 't er in staat.
edit:
die van onno doet het wel http://onno.dhs.org/NSearch/SearchServlet?theme=got
die van onno doet het wel http://onno.dhs.org/NSearch/SearchServlet?theme=got
Wil je zo'n XML file opbouwen of wil je die XML file inlezen?
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
De XML file heb ik dus al, dat is die Turbotracker. Maar wat doe ik er mee? Ik heb dus 0,0 ervaring met XML, vandaar de vraag...Op vrijdag 05 oktober 2001 21:23 schreef mbravenboer het volgende:
Wil je zo'n XML file opbouwen of wil je die XML file inlezen?
[ specs ] [ Tweaker gallery ]
php heeft xml support ingebouwd, ga ff zoeken op php.net
'k ben er mee bezig... Niet dat ik ergens kom, maar ik ben er mee bezig...
[ specs ] [ Tweaker gallery ]
Okee... Op php.net staat wat voorbeeld code. In een van de notes vond ik het volgende stukkie code:
Dit geeft de XML zooi in HTML weer. Heel fijn allemaal, maar als ik nou bv. Alleen een lijst van alle titel's en id's wil, hoe moet ik die code dan aanpassen? Het is me duidelijk dat in de functie startElement de xml tags worden geprint en in de functie characterData wordt de bijbehorende data geprint.
In die eerste functie kan je dus makkelijk een check zetten, iets in de trent van:
Allemaal leuk en aardig, maar alle data wordt nog steeds geprint. Ik kan niet echt zeggen dat ik iets van XML snap.
Hoe moet je dit nou aanpakken zodat er een fatsoenlijk lijstje van nieuwsitems geprint wordt in html?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
| <? $file = "turbotracker.xml"; $depth = array(); $livellovecchio = 0; function startElement($parser, $name, $attrs) { global $livellovecchio; global $depth; $livello = $depth[$parser]; if ($livello > $livellovecchio) { echo "<ul>\n"; } if ($livello < $livellovecchio) { echo "</ul>\n"; } $livellovecchio = $livello; print "<li><b>$name</b>\n"; $depth[$parser]++; } function endElement($parser, $name) { global $depth; $depth[$parser]--; } function characterData($parser, $data) { if (trim($data)) { echo " - "; } print $data . "\n"; } $xml_parser = xml_parser_create(); xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_set_character_data_handler($xml_parser, "characterData"); if (!($fp = fopen($file, "r"))) { die("Errore durante l'apertura del file XML"); } echo "<ul>\n"; while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("errore XML: %s alla linea %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } } echo "</ul>\n\n"; xml_parser_free($xml_parser); ?> |
Dit geeft de XML zooi in HTML weer. Heel fijn allemaal, maar als ik nou bv. Alleen een lijst van alle titel's en id's wil, hoe moet ik die code dan aanpassen? Het is me duidelijk dat in de functie startElement de xml tags worden geprint en in de functie characterData wordt de bijbehorende data geprint.
In die eerste functie kan je dus makkelijk een check zetten, iets in de trent van:
PHP:
1
2
3
| <? if ($name == 'ID' || $name == 'TITEL') print "<li><b>$name</b>\n"; ?> |
Allemaal leuk en aardig, maar alle data wordt nog steeds geprint. Ik kan niet echt zeggen dat ik iets van XML snap.
[ specs ] [ Tweaker gallery ]
code:
1
| $livellovecchio = 0; |
leuk, dat italiaans (of whatever)
Inderdaad, in de data-handler (characterData()) moet je dus ook een soortgelijke check zetten: kijk wat de huidige open tag is, en alleen als het 'ID' of 'TITEL' is voer je het stukje code uit.Allemaal leuk en aardig, maar alle data wordt nog steeds geprint.
'k Denk 't, maar heb 't eruit gesloopt.Op vrijdag 05 oktober 2001 23:29 schreef marcusk het volgende:
code:
1 $livellovecchio = 0;
leuk, dat italiaans (of whatever)zal wel iets van niveau betekenen ofzo?
Ook een idee... Het werkt nu. Geinig, m'n eerste (niet compleet zelf gemaakte) XML-parser. Ik kom er nog wel eens misschien toch dan wel enzo...Inderdaad, in de data-handler (characterData()) moet je dus ook een soortgelijke check zetten: kijk wat de huidige open tag is, en alleen als het 'ID' of 'TITEL' is voer je het stukje code uit.
Hier 's de rauwe-zonder-html-en-styles-opmaak code, voor de liefhebber die er nog mee stoeit:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
| <? $xml_file = "http://www.tweakers.net/turbotracker.dsp"; $curtagname = ''; $lastid = ''; function startElement($parser, $name, $attrs) { global $curtagname; $curtagname = $name; } function endElement($parser, $name) { global $curtagname; $curtagname = ''; } function characterData($parser, $data) { global $curtagname; global $lastid; if ($curtagname == 'ID') $lastid = $data; elseif ($curtagname == 'TITEL') { echo "<a href=\"http://www.tweakers.net/nieuws/$lastid\"". "target=\"blank\">$data</a><br>\n"; } } $xml_parser = xml_parser_create(); xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_set_character_data_handler($xml_parser, "characterData"); if (!($fp = fopen($xml_file, "r"))) { die("Could not open $xml_file for parsing!\n"); } while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("XML-error: %s in line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } } xml_parser_free($xml_parser); ?> |
[ specs ] [ Tweaker gallery ]
ik heb deze veranderd met als parsepagina fok
Maar in tegenstelling tot tnet bestaat de fox-xml uit _veel_ meer newspost
Is het mogelijk om deze parse te beperken tot 10 regels?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
| <? $xml_file = "http://www.athena.fokzine.net/~danny/remote.xml"; $curtagname = ''; $lastid = ''; function startElement($parser, $name, $attrs) { global $curtagname; $curtagname = $name; } function endElement($parser, $name) { global $curtagname; $curtagname = ''; } function characterData($parser, $data) { global $curtagname; global $lastid; if ($curtagname == 'ID') $lastid = $data; elseif ($curtagname == 'TITEL') { echo "<a href=\"http://frontpage.fok.nl/news.fok?id=$lastid\"". "target=\"blank\">$data</a><br>\n"; } } $xml_parser = xml_parser_create(); xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_set_character_data_handler($xml_parser, "characterData"); if (!($fp = fopen($xml_file, "r"))) { die("Could not open $xml_file for parsing!\n"); } while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("XML-error: %s in line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } } xml_parser_free($xml_parser); ?> |
Maar in tegenstelling tot tnet bestaat de fox-xml uit _veel_ meer newspost
Is het mogelijk om deze parse te beperken tot 10 regels?
Is het nodig om een topic van 2 jaar te schoppen?
https://fgheysels.github.io/
Pagina: 1
Dit topic is gesloten.
![]()