首頁  >  文章  >  後端開發  >  PHP XML 解析器

PHP XML 解析器

PHPz
PHPz原創
2024-08-29 13:09:541189瀏覽

PHP XML 解析器允許讀取、建立、更新和操作 XML 文件。 XML 語言用於建立跨網站的共享資料。它的擴充使用 Expect XML 解析器。 XML 函數解析 XML 文檔,但不驗證。 PHP 中有兩種類型的 XML 解析器:基於三種的解析器和基於事件的解析器。 Expat 是基於事件的解析器;它是一個基於事件的(當事件發生時調用處理函數),它是一個非驗證解析器(不驗證並忽略文檔的DTD 鏈接,但如果文檔的格式不正確,那麼它將結束並拋出錯誤訊息),因此它適合Web 應用程序,而且速度很快。 PHP 不需要安裝 XML 解析器,因為它是核心 PHP 的一部分。

廣告 該類別中的熱門課程 PHP 開發人員 - 專業化 | 8 門課程系列 | 3次模擬測驗

開始您的免費軟體開發課程

網頁開發、程式語言、軟體測試及其他

PHP XML 解析器的常數列表是 –

  1. XML_ERROR_NONE – 資料型態整數。
  2. XML_ERROR_SYNTAX – 資料型別整數。
  3. XML_ERROR_NO_MEMORY – 資料型別整數。
  4. XML_ERROR_INVALID_TOKEN – 資料型別整數。
  5. XML_ERROR_NO_ELEMENTS – 資料型別整數。
  6. XML_ERROR_UNCLOSED_TOKEN – 資料類型整數。
  7. XML_ERROR_PARTIAL_CHAR – 資料型別整數。
  8. XML_ERROR_TAG_MISMATCH – 資料型態整數。
  9. XML_ERROR_DUPLICATE_ATTRIBUTE – 資料類型整數。
  10. XML_ERROR_UNDEFINED_ENTITY – 資料型別整數。
  11. XML_ERROR_JUNK_AFTER_DOC_ELEMENT – 資料類型整數。
  12. XML_ERROR_PARAM_ENTITY_REF – 資料型別整數。
  13. XML_ERROR_RECURSIVE_ENTITY_REF – 資料型別整數。
  14. XML_ERROR_ASYNC_ENTITY – 資料型別整數。
  15. XML_ERROR_BAD_CHAR_REF – 資料型別整數。
  16. XML_ERROR_MISPLACED_XML_PI – 資料型別整數。
  17. XML_ERROR_BINARY_ENTITY_REF – 資料型別整數。
  18. XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF – 資料型別整數。
  19. XML_ERROR_UNKNOWN_ENCODING – 資料型別整數。
  20. XML_ERROR_INCORRECT_ENCODING – 資料型別整數。
  21. XML_ERROR_EXTERNAL_ENTITY_HANDLING – 資料型態整數。
  22. XML_ERROR_UNCLOSED_CDATA_SECTION – 資料類型整數。
  23. XML_OPTION_CASE_FOLDING – 資料型態整數。
  24. XML_OPTION_TARGET_ENCODING – 資料型態整數。
  25. XML_OPTION_SKIP_TAGSTART – 資料類型整數。
  26. XML_OPTION_SKIP_WHITE – 資料類型整數。
  27. 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 解析器

結論

PHP XML 解析器允許讀取、建立、更新和操作 XML 文件。 XML 解析器具有上面討論的常數和函數。

以上是PHP XML 解析器的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:PHP XML 閱讀器下一篇:PHP XML 閱讀器