PHP XML Expat ½âÎöÆ÷
ÄÚ½¨µÄ Expat ½âÎöÆ÷ʹÔÚ PHP Öд¦Àí XML Îĵµ³ÉΪ¿ÉÄÜ¡£
ʲôÊÇ XML£¿
XML ÓÃÓÚÃèÊöÊý¾Ý£¬Æä½¹µãÊÇÊý¾ÝÊÇʲô¡£XML ÎļþÃèÊöÁËÊý¾ÝµÄ½á¹¹¡£
ÔÚ XML ÖУ¬Ã»ÓÐÔ¤¶¨ÒåµÄ±êÇ©¡£Äú±ØÐ붨Òå×Ô¼ºµÄ±êÇ©¡£
Èç¹ûÏ£Íûѧϰ¸ü¶àÓÐ¹Ø XML µÄÄÚÈÝ£¬Çë·ÃÎÊÎÒÃÇµÄ XML ½Ì³Ì¡£
ʲôÊÇ Expat£¿
ÈçÐè¶ÁÈ¡ºÍ¸üР- ´´½¨´´½¨²¢´¦Àí - Ò»¸ö XML Îĵµ£¬ÄúÐèÒª XML ½âÎöÆ÷¡£
ÓÐÁ½ÖÖ»ù±¾µÄ XML ½âÎöÆ÷ÀàÐÍ£º
- »ùÓÚÊ÷µÄ½âÎöÆ÷£ºÕâÖÖ½âÎöÆ÷°Ñ XML Îĵµ×ª»»ÎªÊ÷Ðͽṹ¡£Ëü·ÖÎöÕûƪÎĵµ£¬²¢ÌṩÁË API À´·ÃÎÊÊ÷ÖÖµÄÔªËØ£¬ÀýÈçÎĵµ¶ÔÏóÄ£ÐÍ (DOM)¡£
- »ùÓÚʼþµÄ½âÎöÆ÷£º½« XML ÎĵµÊÓΪһϵÁеÄʼþ¡£µ±Ä³¸ö¾ßÌåµÄʼþ·¢Éúʱ£¬½âÎöÆ÷»áµ÷Óú¯ÊýÀ´´¦Àí¡£
Expat ½âÎöÆ÷ÊÇ»ùÓÚʼþµÄ½âÎöÆ÷¡£
»ùÓÚʼþµÄ½âÎöÆ÷¼¯ÖÐÔÚ XML ÎĵµµÄÄÚÈÝ£¬¶ø²»ÊÇËüÃǵĽá¹û¡£ÕýÒòÈç´Ë£¬»ùÓÚʼþµÄ½âÎöÆ÷Äܹ»±È»ùÓÚÊ÷µÄ½âÎöÆ÷¸ü¿ìµØ·ÃÎÊÊý¾Ý¡£
Çë¿´ÏÂÃæµÄ XML Ƭ¶Î£º
<from>John</from>
»ùÓÚʼþµÄ½âÎöÆ÷°ÑÉÏÃæµÄ XML ±¨¸æÎªÒ»Á¬´®µÄÈý¸öʼþ£º
- ¿ªÊ¼ÔªËØ£ºfrom
- ¿ªÊ¼ CDATA ²¿·Ö, Öµ£ºJohn
- ¹Ø±ÕÔªËØ£º from
ÉÏÃæµÄ XML ·¶Àý°üº¬ÁËÐÎʽÁ¼ºÃµÄ XML¡£²»¹ýÕâ¸öÀý×ÓÊÇÎÞЧµÄ XML£¬ÒòΪûÓÐÓëËü¹ØÁªµÄÎĵµÀàÐÍÉùÃ÷ (DTD)£¬Ò²Ã»ÓÐÄÚǶµÄ DTD¡£
²»¹ý£¬ÔÚʹÓà Expat ½âÎöÆ÷ʱ£¬ÕâûÓÐÇø±ð¡£Expat ÊDz»¼ì²éÓÐЧÐԵĽâÎöÆ÷£¬ºöÂÔÈκΠDTD¡£
×÷Ϊһ¿î»ùÓÚʼþ¡¢·ÇÑéÖ¤µÄ XML ½âÎöÆ÷£¬Expat ¿ìËÙÇÒÇáÇÉ£¬Ê®·ÖÊÊºÏ PHP µÄ web Ó¦ÓóÌÐò¡£
×¢ÊÍ£ºXML Îĵµ±ØÐëÐÎʽÁ¼ºÃ£¬·ñÔò Expat »áÉú³É´íÎó¡£
°²×°
XML Expat ½âÎöÆ÷ÊÇ PHP ºËÐĵÄ×é³É²¿·Ö¡£ÎÞÐè°²×°¾Í¿ÉÒÔʹÓÃÕâЩº¯Êý¡£
XML Îļþ
½«ÔÚÎÒÃǵÄÀý×ÓÖÐʹÓÃÏÂÃæµÄ XML Îļþ£º
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>
³õʼ»¯ XML ½âÎöÆ÷
ÎÒÃÇÒªÔÚ PHP Öгõʼ»¯ XML ½âÎöÆ÷£¬Îª²»Í¬µÄ XML ʼþ¶¨Òå´¦ÀíÆ÷£¬È»ºó½âÎöÕâ¸ö XML Îļþ¡£
Àý×Ó
<?php //Initialize the XML parser $parser=xml_parser_create(); //Function to use at the start of an element function start($parser,$element_name,$element_attrs) { switch($element_name) { case "NOTE": echo "-- Note --<br />"; break; case "TO": echo "To: "; break; case "FROM": echo "From: "; break; case "HEADING": echo "Heading: "; break; case "BODY": echo "Message: "; } } //Function to use at the end of an element function stop($parser,$element_name) { echo "<br />"; } //Function to use when finding character data function char($parser,$data) { echo $data; } //Specify element handler xml_set_element_handler($parser,"start","stop"); //Specify data handler xml_set_character_data_handler($parser,"char"); //Open XML file $fp=fopen("test.xml","r"); //Read data while ($data=fread($fp,4096)) { xml_parse($parser,$data,feof($fp)) or die (sprintf("XML Error: %s at line %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser))); } //Free the XML parser xml_parser_free($parser); ?>
ÒÔÉÏ´úÂëµÄÊä³ö£º
-- Note -- To: George From: John Heading: Reminder Message: Don't forget the meeting!
¹¤×÷ÔÀí½âÊÍ£º
- ͨ¹ý xml_parser_create() º¯Êý³õʼ»¯ XML ½âÎöÆ÷
- ´´½¨ÅäºÏ²»Í¬Ê¼þ´¦Àí³ÌÐòµÄµÄº¯Êý
- Ìí¼Ó xml_set_element_handler() º¯ÊýÀ´¶¨Ò壬µ±½âÎöÆ÷Óöµ½¿ªÊ¼ºÍ½áÊø±êǩʱִÐÐÄĸöº¯Êý
- Ìí¼Ó xml_set_character_data_handler() º¯ÊýÀ´¶¨Ò壬µ±½âÎöÆ÷Óöµ½×Ö·ûÊý¾ÝʱִÐÐÄĸöº¯Êý
- ͨ¹ý xml_parse() º¯ÊýÀ´½âÎöÎļþ "test.xml"
- ÍòÒ»ÓдíÎóµÄ»°£¬Ìí¼Ó xml_error_string() º¯Êý°Ñ XML ´íÎóת»»ÎªÎı¾ËµÃ÷
- µ÷Óà xml_parser_free() º¯ÊýÀ´ÊÍ·Å·ÖÅ䏸 xml_parser_create() º¯ÊýµÄÄÚ´æ
¸ü¶à PHP Expat ½âÎöÆ÷µÄÐÅÏ¢
ÈçÐè¸ü¶àÓÐ¹Ø PHP Expat º¯ÊýµÄÐÅÏ¢£¬Çë·ÃÎÊÎÒÃÇµÄ PHP XML Parser ²Î¿¼Êֲᡣ