xml_parse()函數是PHP中的內置函數,用於解析XML文檔。
用法:
int xml_parse( resource $xml_parser, string $xml_data, bool $is_final )
參數:此函數接受上述和以下所述的三個參數:
- $xml_parser:它是必填參數。它指定要使用的XML解析器。
- $xml_data:它是必填參數。它指定要解析的數據。
- $is_final:它是可選參數。如果此參數的值設置為True,則數據是此解析中發送的最後一條數據。
返回值:如果成功,則此函數返回True;如果失敗,則返回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 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)));
}
// Freeing 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.
程序2:
<?php
// Create an xml parser
$xml_parser = xml_parser_create();
// Element handler function named "starting_handler"
// enables custom manupulation for output
function starting_handler($xml_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($xml_parser, $element_name) {
echo "<br>";
}
// Character handler function named "char_handler"
function char_handler($xml_parser, $xml_data) {
echo $xml_data;
}
// Setting element handlers
xml_set_element_handler($xml_parser,
"starting_handler", "ending_handler");
// Setting character data handler
xml_set_character_data_handler($xml_parser, "char_handler");
// Opening xml file
$file_pointer = fopen("gfg.xml", "r");
// Reading xml file
while ($xml_data = fread($file_pointer, 4096)) {
xml_parse($xml_parser, $xml_data, feof($file_pointer)) or
// Display error while xml parsing
die (sprintf("XML Error: %s at line %d",
// Error string
xml_error_string(xml_get_error_code($xml_parser)),
// Error line number
xml_get_current_line_number($xml_parser)));
}
// Free xml parser
xml_parser_free($xml_parser);
// Closing file stream
fclose($file_pointer);
?>
輸出:
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-parse.php
相關用法
- p5.js sq()用法及代碼示例
- d3.js d3.map.has()用法及代碼示例
- PHP next()用法及代碼示例
- p5.js day()用法及代碼示例
- p5.js pow()用法及代碼示例
- CSS var()用法及代碼示例
- d3.js d3.map.set()用法及代碼示例
- PHP pow( )用法及代碼示例
- PHP pi( )用法及代碼示例
- PHP Ds\Map get()用法及代碼示例
- PHP Ds\Map put()用法及代碼示例
- p5.js str()用法及代碼示例
注:本文由純淨天空篩選整理自gekcho大神的英文原創作品 PHP | xml_parse() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。