ugrás a tartalomhoz

Xml-ben egy addott tag előfordulásának megszámolása.

Anonymous · 2006. Jún. 27. (K), 22.20
Üdv!

LEnne egy kis problémám:

írtam egy xml kezelőt:

<?php

$parser = xml_parser_create();

xml_set_element_handler($parser, "start_handler", "end_handler");

xml_set_character_data_handler($parser, "character_handler");

xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);

$xml = file_get_contents("stat.xml");

xml_parse($parser, $xml);

xml_parser_free($parser);

function start_handler($parser, $tag, $type) {

}

function end_handler($parser, $tag) {

}

function character_handler($parser, $text) {

}

?>
Nos az a bajom hogy van egy olyan a <stat> tagen belül hogy <players>
és azon belül ha minél több játékos van akkor minnél több <player> tag, és én ezt szeretném megszámolni, de hogyan?

ezt próbáltam de nem jött be

function start_handler($parser, $tag, $type) {
while ($tag == "player") {
$a++;
}
print $a;
}
 
1

Nem kell ciklus

vbence · 2006. Jún. 27. (K), 23.23
Nem néztem most utána, de úgylátom, te SAX parser-t használsz. Itt nem kell ciklus, kell egy globális változó, amit növelsz a start_handler fv-ben. Pl:
function start_handler($parser, $tag, $type) {
    global $a;
    if ($tag == "player") {
        $a++;
    }
}
majd a "főprogramban" a xml_parse($parser, $xml); sor után megvizsgálod a $a-t, és lőn..
2

Esetleg DOM

Jano · 2006. Jún. 27. (K), 23.44
DOM-ban erre lenne a playersNode.getElementsByTagName("player").
3

Köszi...

Anonymous · 2006. Jún. 28. (Sze), 00.17
Ok, kössz a megdolást működött a global-al

Kössz még1x.