PHP XML 解析器允許讀取、建立、更新和操作 XML 文件。 XML 語言用於建立跨網站的共享資料。它的擴充使用 Expect XML 解析器。 XML 函數解析 XML 文檔,但不驗證。 PHP 中有兩種類型的 XML 解析器:基於三種的解析器和基於事件的解析器。 Expat 是基於事件的解析器;它是一個基於事件的(當事件發生時調用處理函數),它是一個非驗證解析器(不驗證並忽略文檔的DTD 鏈接,但如果文檔的格式不正確,那麼它將結束並拋出錯誤訊息),因此它適合Web 應用程序,而且速度很快。 PHP 不需要安裝 XML 解析器,因為它是核心 PHP 的一部分。
廣告
該類別中的熱門課程
PHP 開發人員 - 專業化 | 8 門課程系列 | 3次模擬測驗
開始您的免費軟體開發課程
網頁開發、程式語言、軟體測試及其他
PHP XML 解析器的常數列表是 –
- XML_ERROR_NONE – 資料型態整數。
- XML_ERROR_SYNTAX – 資料型別整數。
- XML_ERROR_NO_MEMORY – 資料型別整數。
- XML_ERROR_INVALID_TOKEN – 資料型別整數。
- XML_ERROR_NO_ELEMENTS – 資料型別整數。
- XML_ERROR_UNCLOSED_TOKEN – 資料類型整數。
- XML_ERROR_PARTIAL_CHAR – 資料型別整數。
- XML_ERROR_TAG_MISMATCH – 資料型態整數。
- XML_ERROR_DUPLICATE_ATTRIBUTE – 資料類型整數。
- XML_ERROR_UNDEFINED_ENTITY – 資料型別整數。
- XML_ERROR_JUNK_AFTER_DOC_ELEMENT – 資料類型整數。
- XML_ERROR_PARAM_ENTITY_REF – 資料型別整數。
- XML_ERROR_RECURSIVE_ENTITY_REF – 資料型別整數。
- XML_ERROR_ASYNC_ENTITY – 資料型別整數。
- XML_ERROR_BAD_CHAR_REF – 資料型別整數。
- XML_ERROR_MISPLACED_XML_PI – 資料型別整數。
- XML_ERROR_BINARY_ENTITY_REF – 資料型別整數。
- XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF – 資料型別整數。
- XML_ERROR_UNKNOWN_ENCODING – 資料型別整數。
- XML_ERROR_INCORRECT_ENCODING – 資料型別整數。
- XML_ERROR_EXTERNAL_ENTITY_HANDLING – 資料型態整數。
- XML_ERROR_UNCLOSED_CDATA_SECTION – 資料類型整數。
- XML_OPTION_CASE_FOLDING – 資料型態整數。
- XML_OPTION_TARGET_ENCODING – 資料型態整數。
- XML_OPTION_SKIP_TAGSTART – 資料類型整數。
- XML_OPTION_SKIP_WHITE – 資料類型整數。
- XML_SAX_IMPL – 資料類型字串。
PHP XML 解析器的功能
PHP XML 解析器的功能有:
- utf8_decode() – 此函數用於將 UTF-8 字串解碼為 ISO-8859-1。
- utf8_encode() – 此函數用於將 ISO-8859-1 字串編碼為 UTF-8。
- xml_get_current_column_number() – 此函數用於從 XML 解析器取得目前列號。
- xml_get_current_byte_index() – 此函式用於取得 XML 解析器的目前位元組索引。
- xml_get_current_line_number() – 此函數用於取得 XML 解析器的目前行號。
- xml_error_string() – 此函數用於取得錯誤(如果 XML 解析器中存在錯誤)。
- xml_get_error_code() – 此函數用於取得 XML 解析器中的錯誤代碼(如果有)。
- xml_parse() – 此函數用於對 XML 文件執行解析操作。
- xml_parse_into_struct() – 此函數用於將 XML 資料解析為陣列。
- xml_parser_create() – 此函數用於建立 XML 解析器
- xml_parser_create_ns() – 此函數用於建立具有命名空間的 XML 解析器。
- xml_parser_free() – 此函數用於釋放 XML 解析器。
- xml_parser_set_option() – 此函數用於將選項設定到 XML 解析器。
- xml_parser_get_option() – 此函數用於取得 XML 解析器的選項。
- xml_set_default_handler() – 此函數用於設定 XML 解析器中的預設資料處理程序。
- xml_set_character_data_handler() – 此函數用於設定 XML 解析器中的字元資料處理程序。
- xml_set_end_namespace_decl_handler() – 此函數用於設定 XML 解析器的名稱空間宣告處理程序的結束。
- xml_set_external_entity_ref_handler() – 此函式用於設定 XML 解析器的外部實體參考處理程序。
- xml_set_object() – 此函數用於允許物件使用 XML 解析器。
- xml_set_processing_instruction_handler() – 此函數用於設定 XML 解析器的處理指令處理程序。
- xml_set_notation_decl_handler() – 此函數用於設定 XML 解析器的符號宣告處理程序。
- xml_set_unparsed_entity_decl_handler() – 此函數用於將 XML 解析器的處理函數設定為未解析的實體宣告。
- xml_set_element_handler() – 此函數用於設定 XML 解析器的元素處理程序的開始和結束。
- xml_set_start_namespace_decl_handler() – 此函數用於設定 XML 解析器的起始命名空間宣告處理程序。
PHP XML 解析器範例
用於讀取數組中的 XML 檔案的 PHP XML 解析器範例 –
接下來,我們編寫 PHP 程式碼來更清楚地了解 PHP XML 解析器,透過以下範例,其中 XML 解析器用於讀取 XML 資料檔案並儲存到數組中,如下所示 –
範例#1
首先,我們建立名為「Examplefile.xml」的 XML 資料文件,並產生資料內容為 –
<?xml version="1.0" encoding="utf-8"?>
<employees status = "ok">
<record no = "100">
<name> John </name>
<position> Clerk </position>
</record>
<record no = "101">
<name> Sam </name>
<position> Sales Manager </position>
</record>
<record no = "102">
<name> Jaan </name>
<position> Sales Executive </position>
</record>
</employees>
Next create the php file as below -
<!DOCTYPE html>
<html>
<body>
<?php
// using this function to creates an XML parser
$xmlparser = xml_parser_create();
// opening the xml file to read
$file = fopen("Examplefile.xml", "r");
//freeing the memory when read is done with
$xml_data = fread($file, 4096);
// Parsing the XML data of the file into an array
xml_parse_into_struct($xmlparser,$xml_data,$values);
// This function is using to frees the XML parser
xml_parser_free($xmlparser);
// printing the values from the xml file
print_r($values);
// closing the xml file
fclose($file);
?>
</body>
</html>
輸出:
如上面的程序,創建了XML解析器,然後打開“Examplefile.xml”文件,讀取該文件的XML數據並將其解析為數組;正如我們所看到的,它也在輸出中打印。
結論
PHP XML 解析器允許讀取、建立、更新和操作 XML 文件。 XML 解析器具有上面討論的常數和函數。
以上是PHP XML 解析器的詳細內容。更多資訊請關注PHP中文網其他相關文章!