當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


PHP xml_parser_create()用法及代碼示例

xml_parser_create()函數是PHP中的一個內置函數,用於創建XML解析器。

用法:

resource xml_parser_create( string $encoding )

參數:該函數接受可選的單個參數$encoding。它指定字符編碼:


  • 用於PHP 4中的輸入/輸出
  • 僅用於PHP 5的輸出
  • 對於5.0.0和5.0.1,默認輸出字符集為ISO-8859-1
  • 從5.0.2起默認輸出字符集為UTF-8

返回值:此函數返回成功使用的資源處理程序,如果成功,其他XML函數將使用該資源處理程序;如果失敗,則返回False。

注意:

  • 此函數可用於PHP 4.0.0和更高版本。
  • 這些示例可能不適用於在線IDE。因此,請嘗試在本地服務器或php托管服務器上運行它。

gfg.xml文件:

<?xml version="1.0" encoding="utf-8"?> 
<user> 
    <username> user123 </username> 
    <name> firstname lastname </name> 
    <phone> +91-9876543210 </phone> 
    <detail> I am John Doe. Live in Kolkata, India. </detail> 
</user>

程序1:

<?php 
  
// Create an XML parser 
$parser = xml_parser_create(); 
   
// set the character handler function 
// for the XML parser 
xml_set_character_data_handler($parser, "char_print"); 
   
// Opening the xml file 
$filePointer = fopen("gfg.xml", "r"); 
   
// Reading xml data from file 
while($data = fread($filePointer, 4096)) { 
   
    // Parseing XML data 
    xml_parse($parser, $data, feof($filePointer)) or
      
    // Display error when parse error occurs 
    die(sprintf("XML Error: %s at line %d", 
      
        // Error string 
        xml_error_string(xml_get_error_code($parser)), 
          
        // Current line 
        xml_get_current_line_number($parser)) 
    ); 
} 
  
// Free to xml parser 
xml_parser_free($parser); 
  
fclose($filePointer); 
   
// Character handler function for XML parser 
function char_print($parser, $data) { 
    echo $data; 
} 
   
?>

輸出:

user123 
firstname lastname 
+91-9876543210 
I am John Doe. Live in Kolkata, India. 

geeks.xml文件:

<?xml version="1.0" encoding="utf-8"?> 
<user> 
    <username> user123 </username> 
    <name> firstname lastname </name> 
    <phone> +91-9876543210 </phone> 
    <detail> I am John Doe. Live in Kolkata, India. </detail> 
</user>

程序2:

<?php 
  
// Creating an XML parser 
$parser = xml_parser_create(); 
  
// Element handler function named "starting_handler" 
// enables custom manupulation for output 
function starting_handler($parser,  
                $element_name, $element_attrs) { 
      
    switch($element_name) { 
        case "USER": 
            echo "<u>USER DATA</u><br>"; 
            break; 
        case "USERNAME": 
            echo "Username: "; 
            break; 
        case "NAME": 
            echo "Name: "; 
            break; 
        case "PHONE": 
            echo "Phone no: "; 
            break; 
        case "DETAIL": 
            echo "More about user: "; 
    } 
} 
  
// Element handler function named "ending_handler" 
function ending_handler($parser, $element_name) { 
    echo "<br>"; 
} 
  
// Character handler funtion named "char_handler" 
function char_handler($parser, $data) { 
    echo $data; 
} 
  
// Setting the element handlers 
xml_set_element_handler($parser,  
            "starting_handler", "ending_handler"); 
  
// Setting character data handler 
xml_set_character_data_handler($parser, "char_handler"); 
  
// Opening xml file 
$fp = fopen("geeks.xml", "r"); 
  
// Reading xml file  
while ($data = fread($fp, 4096)) { 
   
    xml_parse($parser, $data, feof($fp)) or
      
    // Display error while xml parsing 
    die (sprintf("XML Error: %s at line %d", 
          
        // Error string 
        xml_error_string(xml_get_error_code($parser)), 
          
        // Error line number 
        xml_get_current_line_number($parser)) 
    ); 
} 
  
// Free to xml parser 
xml_parser_free($parser); 
  
// Closing file stream 
fclose($fp); 
  
?>

輸出:

USER DATA
Username: user123
Name: firstname lastname
Phone no: +91-9876543210
More about user: I am John Doe. Live in Kolkata, India.

參考: https://www.php.net/manual/en/function.xml-parser-create.php



相關用法


注:本文由純淨天空篩選整理自gekcho大神的英文原創作品 PHP | xml_parser_create() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。