有许多技术可用于用 PHP 读取和编写 XML。本文提供了三种方法读取 XML:使用 DOM 库、使用 SAX 解析器和使用正则表达式。还介绍了使用 DOM 和 PHP 文本模板编写 XML。
有许多技术可用于用 PHP 读取和编写 XML。本文提供了三种方法读取 XML:使用 DOM 库、使用 SAX 解析器和使用正则表达式。还介绍了使用 DOM 和 PHP 文本模板编写 XML。
文章引用地址:
http://www.ibm.com/developerworks/cn/opensource/os-xmldomphp
1

2
$doc = new DOMDocument();3
$doc->load("flight.xml");4
$elements = $doc->getElementsByTagName('flight');5

6
foreach($elements as $element)7
{8
$ids = $element->getElementsByTagName("id");9
$id = $ids->item(0)->nodeValue;10
echo $id."<BR/>";11

12
}13
14
$cabins = $doc->getElementsByTagName('cabin');15
16
echo "=============================<BR/>";17
foreach($cabins as $cabin)18
{19
$cabin_ids = $cabin->getElementsByTagName("flightid");20
$cabin_id = $cabin_ids->item(0)->nodeValue;21
echo $cabin_id."<BR/>";22

23
}
1
$g_books = array();2
$g_elem = null;3
4
function startElement( $parser, $name, $attrs ) 5
{6
global $g_books, $g_elem ,$g_books1, $g_elem1;7
if ( $name == 'FLIGHT' ) $g_books []= array();8
$g_elem = $name;9
10
if ( $name == 'CABIN' ) $g_books1 []= array();11
$g_elem1 = $name;12
}13
14
function endElement( $parser, $name ) 15
{16
global $g_elem;17
$g_elem = null;18
19
global $g_elem1;20
$g_elem1 = null;21
}22
23
function textData( $parser, $text )24
{25
global $g_books, $g_elem ,$g_books1, $g_elem1;26
if ( $g_elem == 'ID' ||27
$g_elem == 'DATE' ||28
$g_elem == 'PLANESTYLE' )29
{30
$g_books[ count( $g_books ) - 1 ][ $g_elem ] = $text;31
//echo count($g_books)."===".$g_elem."++++".$text."<BR/>";32
}33
34
35
if ( $g_elem == 'FLIGHTID' ||36
$g_elem == 'CODE' ||37
$g_elem == 'CABINTYPE' )38
{39
$g_books1[ count( $g_books1 ) - 1 ][ $g_elem1 ] = $text;40
//echo count($g_books)."===".$g_elem."++++".$text."<BR/>";41
}42
43
44
}45
46
$parser = xml_parser_create();47
48
xml_set_element_handler( $parser, "startElement", "endElement" );49
xml_set_character_data_handler( $parser, "textData" );50
51
$f = fopen('flight.xml','r');52
53
while(!feof($f))54
{55
$data .= fread($f,filesize('flight.xml'));56
}57
58

59
xml_parse( $parser, $data);60
61
xml_parser_free( $parser );62
63
foreach( $g_books as $book )64
{65
echo $book['ID']." - ".$book['DATE']." - ";66
echo $book['PLANESTYLE']."\n";67
}68

69
//=========================70
foreach( $g_books1 as $book1 )71
{72
echo $book1['FLIGHTID']." - ".$book1['CODE']." - ";73
echo $book1['CABINTYPE']."\n";74
}75

一个据说不错的xml解析类:
http://blog.s135.com/read.php/253.htm
浙公网安备 33010602011771号