PHP XML Expat పార్సర్
内建的 Expat 解析器使在 PHP 中处理 XML 文档成为可能。
什么是 XML?
XML 用于描述数据,其焦点是数据是什么。XML 文件描述了数据的结构。
在 XML 中,没有预定义的标签。您必须定义自己的标签。
如果希望学习更多有关 XML 的内容,请访问我们的 XML పాఠ్యక్రమం。
什么是 Expat?
如需读取和更新 - 创建创建并处理 - 一个 XML 文档,您需要 XML 解析器。
有两种基本的 XML 解析器类型:
- ట్రీ ఆధారిత పరిశీలకంఈ పరిశీలకం ఎక్సిఎమ్ఎల్ పత్రాన్ని ట్రీ స్ట్రక్చర్గా మారుస్తుంది. ఇది మొత్తం పత్రాన్ని పరిశీలిస్తుంది మరియు ట్రీలోని అంశాలను పొందడానికి API ని అందిస్తుంది, ఉదాహరణకు డాక్యుమెంట్ ఆబ్జెక్ట్ మోడల్ (DOM).
- ఇంటర్వెంట్ ఆధారిత పరిశీలకంఎక్సిఎమ్ఎల్ పత్రాన్ని సంఘటనల శ్రేణిగా పరిగణిస్తుంది. ఒక ప్రత్యేక సంఘటన జరిగినప్పుడు, పరిశీలకం ఫంక్షన్స్ ని కాల్ చేస్తుంది మరియు నిర్వహిస్తుంది.
Expat పరిశీలకం ఇంటర్వెంట్ ఆధారిత పరిశీలకం.
ఇంటర్వెంట్ ఆధారిత పరిశీలకం ఎక్సిఎమ్ఎల్ పత్రం యొక్క విషయాన్ని కేంద్రీకరిస్తుంది, కాదు వాటి ఫలితాలను. ఈ కారణంగా, ఇంటర్వెంట్ ఆధారిత పరిశీలకం ట్రీ ఆధారిత పరిశీలకాలకంది కంటే వేగంగా డాటాను పొందవచ్చు.
క్రింది ఎక్సిఎమ్ఎల్ పార్టు చూడండి:
<from>జాన్</from>
ఇంటర్వెంట్ ఆధారిత పరిశీలకం పైని ఎక్సిఎమ్ఎల్ ని మూడు సంఘటనల సరికొత్తగా పరిగణిస్తుంది:
- ప్రారంభించిన కొలబడి: from
- CDATA భాగం ప్రారంభించండి, విలువ: జాన్
- మూసిన కొలబడి: from
పైని ఎక్సిఎమ్ఎల్ ఉదాహరణ రూపాన్ని కలిగివుంది. కానీ, ఈ ఉదాహరణ అనేకంగా అసలుగా ఎక్సిఎమ్ఎల్ కాదు, ఎందుకంటే దానితో సంభందించిన డాక్యుమెంట్ టైప్ డేక్లరేషన్ (DTD) లేదు మరియు లోపలికించిన DTD కూడా లేదు.
కానీ, ఎక్స్పాట్ పరిశీలకం వాడటంలో ఈ తేడా లేదు. ఎక్స్పాట్ పరిశీలకం ప్రమాణాలను పరిశీలించదు, ఏదైనా DTD ను పరిగణనలోకి తీసుకోదు.
ఇంటర్వెంట్ ఆధారిత, పరిశీలన లేని ఎక్సిఎమ్ఎల్ పరిశీలకంగా ఉన్న ఎక్స్పాట్ వేగవంతంగా మరియు కిరితంగా ఉంటుంది, ఇది PHP వెబ్ అప్లికేషన్స్ కు అనుకూలంగా ఉంటుంది.
ప్రతీక్షలు:XML పత్రం రూపాన్ని కలిగివుండాలి, లేకపోతే Expat దోషపూరితమైన సమస్యలను సృష్టిస్తుంది.
సంస్థాపించండి
XML Expat పరిశీలకం పిఎచ్పి కొరియా యొక్క భాగం. ఈ ఫంక్షన్స్ ని సంస్థాపించకుండా ఉపయోగించవచ్చు.
ఎక్సిఎమ్ఎల్ ఫైల్
మా ఉదాహరణలో క్రింది ఎక్సిఎమ్ఎల్ ఫైల్ ని వాడుతున్నాము:
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>జార్జ్</to> <from>జాన్</from> <heading>గుర్తుంచుకోండి</heading> <body>మీరు సమావేశాన్ని మర్చిపోకుడా లేదు!</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); ?>
పై కోడ్ యొక్క అవుట్పుట్:
-- గమనిక -- కు: జార్జ్ నుండి: జాన్ శీర్షిక: జ్ఞాపకం సందేశం: సమావేశం మర్చిపోవద్దు!
పని విధానం వివరణ:
- xml_parser_create() ఫంక్షన్ని వాడి XML పరిశీలనకర్తను ప్రారంభించండి
- వివిధ ఇవెంట్ హాండ్లర్స్ తో పరిశీలనకర్త సృష్టించడానికి ఫంక్షన్స్ సృష్టించండి
- పరిశీలనకర్త పెరుగుతున్న మొదటి మరియు చివరి టాగ్లను పరిశీలించడానికి xml_set_element_handler() ఫంక్షన్ని వాడండి
- పరిశీలనకర్త పెరుగుతున్న చారక డేటాను పరిశీలించడానికి xml_set_character_data_handler() ఫంక్షన్ని వాడండి
- ఫైల్ "test.xml"ను పరిశీలించడానికి xml_parse() ఫంక్షన్ని వాడండి
- విఫలమైనట్లయితే, xml_error_string() ఫంక్షన్ని వాడి XML దోషాలను పదబంధంగా మార్చండి
- xml_parser_create() ఫంక్షన్కు కేటాబడిన మెమొరీని విడిచిపెట్టడానికి xml_parser_free() ఫంక్షన్ని వాడండి
PHP Expat పరిశీలనకర్త గురించి మరింత సమాచారం
PHP Expat ఫంక్షన్స్ గురించి మరింత సమాచారం కోసం, మా PHP XML Parser పరిశీలన పాఠకం పరిశీలన చేయండి。