// 该元素的父元素的子元素记数器加一
+ x( G8 z5 _4 y' u8 u+ a8 z- @电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站$elements[$last_element]->childs[$name]++; 我爱电脑技术社区--打造最好的电脑技术自学交流平台0 h2 f$ W' A3 h; o+ W
} 我爱电脑技术论坛) `/ k4 u" R$ h, J! D- p7 j8 k
. W) `8 c6 y- F' [1 n1 E/ l// 将目前的元素加入到栈中 我爱电脑技术社区--打造最好的电脑技术自学交流平台+ A! b% Y' o, w
array_push($stack, $name); 电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站1 t8 {. n2 l5 L5 U& j
}
: m, o% c' ?; ~我爱电脑技术论坛
9 ^$ F7 H* }# z8 Ofunction stop_element($parser, $name)
5 O v. @( f% c1 ^0 F电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站{
L' O+ m0 v0 N( U+ b8 U fglobal $stack;
5 } m" n0 k8 y9 q. u电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站
: {7 L6 i: J; ?6 q* D我爱电脑技术社区--打造最好的电脑技术自学交流平台// 从栈中将最顶部的元素移去
; |9 A2 L% ~$ @' R我爱电脑技术社区--打造最好的电脑技术自学交流平台array_pop($stack);
& {3 s0 z# I* F! C5 Y5 p$ k我爱电脑技术论坛} 电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站0 M1 J* Z! k1 X7 Q% K9 {0 |
7 b* P1 u. J+ Q2 p$ Q电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站function char_data($parser, $data) www.520diannao.com1 I8 j( ?$ T* T3 _
{ 我爱电脑技术社区--打造最好的电脑技术自学交流平台5 H; ~) Y* K2 f1 q
global $elements, $stack, $depth;
: f: ^* [: q0 U3 w5 g, hwww.520diannao.com
2 d# X- Y6 v9 c" o7 s z- h Qwww.520diannao.com// 增加目前元素的字符数目
/ A$ z- ^7 ^, c" L0 g8 f; ]我爱电脑技术社区--打造最好的电脑技术自学交流平台$elements[$stack][count($stack)-1]]->chars += strlen(trim($data));
) u. B9 c: Y5 b) j3 lwww.520diannao.com} 我爱电脑技术论坛1 r- a0 e/ h8 W& W3 D8 E& V2 r
3 @+ ~1 @* U9 @: X9 ~- M3 W打造最好的电脑自学交流论坛// 产生解析器的实例
/ v+ U/ R/ S2 ]( g6 P( y打造最好的电脑自学交流论坛$parser = xml_parser_create();
7 n& F8 K6 c) @打造最好的电脑自学交流论坛
* D1 P- T& b% f. Z// 设置处理函数
7 w5 P$ K! p% o8 D$ B3 ^打造最好的电脑自学交流论坛xml_set_element_handler($parser, "start_element", "stop_element");
- \9 c; A- @0 P打造最好的电脑自学交流论坛xml_set_character_data_handler($parser, "char_data");
3 k' g' O; g) n打造最好的电脑自学交流论坛xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0); www.520diannao.com+ C1 C( u! m* {: [; [9 i% T4 w
' H% @' \6 k+ \- Z) Y4 T// 解析文件 打造最好的电脑自学交流论坛, O8 u( S6 f1 _8 [6 V! U2 C
$ret = xml_parse_from_file($parser, $file);
" O* F: ~" l; w$ W( ]& k4 H我爱电脑技术论坛if(!$ret)
q+ z/ s$ t4 @4 S{ 打造最好的电脑自学交流论坛2 ?- G4 N9 n: I" c) C% G r2 W
die(sprintf("XML error: %s at line %d",
0 ^, e/ ?2 @& q! v/ S我爱电脑技术社区--打造最好的电脑技术自学交流平台xml_error_string(xml_get_error_code($parser)), 打造最好的电脑自学交流论坛3 Q# A: @2 a: \" _
xml_get_current_line_number($parser))); 打造最好的电脑自学交流论坛, Q9 e" V; ]' Z2 J
}
% h9 P3 q0 s: S, Y8 v我爱电脑技术论坛
0 y% D4 A! e7 l0 C# ?0 y" i电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站// 释放解析器
9 H l. W' b- `5 w我爱电脑技术论坛xml_parser_free($parser);
' _: | C5 |8 K* U我爱电脑技术社区--打造最好的电脑技术自学交流平台
( d; H; r1 r4 }, i- U" I" l7 [3 N我爱电脑技术论坛// 释放协助元素 电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站$ n, D* S4 b0 O) O, `9 I
unset($elements["current_element"]); 打造最好的电脑自学交流论坛' V3 [3 L+ z! l6 V2 n
unset($elements["last_element"]);
5 t8 n% }! I+ q电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站
& ]! j7 V5 \0 Q5 e9 r, b我爱电脑技术社区--打造最好的电脑技术自学交流平台// 根据元素的次数排序
& v. A; i* _) }2 y! K2 C) }, K4 Dwww.520diannao.comuasort($elements, "my_sort"); $ b/ O- k0 L6 f$ |
2 T% Y- M( y9 Z. Kwww.520diannao.com// 在$elements中循环收集元素信息
% \: i% ^' g! `3 D3 lwww.520diannao.comwhile(list($name, $element) = each($elements)) * m" E, L- U W( a8 \$ ?
{ 我爱电脑技术论坛5 s0 Q+ Q3 F- \& f4 T' C- [: N# c9 B
print_box("Element name", $name);
* _ P, A X' V电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站- \, U! f6 _+ D+ J- a5 l1 r; b
print_line("Element count", $element->count); 我爱电脑技术社区--打造最好的电脑技术自学交流平台( l1 {& k* e& W: ^% M8 Q& b
print_line("Character count", $element->chars);
* F/ ]. M# @1 x- [2 ]: Q7 p4 d我爱电脑技术社区--打造最好的电脑技术自学交流平台打造最好的电脑自学交流论坛: n9 s2 a" G! m0 j+ K- X7 O
printf("n%20sn", "* Parent elements");