PHP用SAX解析XML

 <?php
 2
 $g_books = array();
 3
 $g_elem = null;
 4
 
 5 function startElement( $parser, $name, $attrs ) 
 6
 {
 7
 global $g_books, $g_elem;
 8
 if ( $name == 'BOOK' ) $g_books []= array();
 9
 $g_elem = $name;
10
 }
11
 
12 function endElement( $parser, $name ) 
13
 {
14
 global $g_elem;
15
 $g_elem = null;
16
 }
17
 
18 function textData( $parser, $text )
19
 {
20
 global $g_books, $g_elem;
21
 if ( $g_elem == 'AUTHOR' ||
22 $g_elem == 'PUBLISHER' ||
23 $g_elem == 'TITLE' )
24
 {
25
 $g_bookscount$g_books ) - 1 ][ $g_elem ] = $text;
26
 }
27
 }
28
 
29 $parser = xml_parser_create();
30
 
31 xml_set_element_handler$parser, "startElement", "endElement" );
32
 xml_set_character_data_handler$parser, "textData" );
33
 
34 $f = fopen'books.xml', 'r' );
35
 
36 while$data = fread$f, 4096 ) )
37
 {
38
 xml_parse$parser, $data );
39
 }
40
 
41 xml_parser_free$parser );
42
 
43 foreach$g_books as $book )
44
 {
45
 echo $book['TITLE']." - ".$book['AUTHOR']." - ";
46
 echo $book['PUBLISHER']."\n";
47
 }
48
 ?>

转载于:https://www.cnblogs.com/CodeGuy/archive/2011/08/19/2146307.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值