<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # PHP XML Expat 解析器 **內建的 Expat 解析器使在 PHP 中處理 XML 文檔成為可能。** ## 什么是 XML? XML 用于描述數據,其焦點是數據是什么。XML 文件描述了數據的結構。 在 XML 中,沒有預定義的標簽。您必須定義自己的標簽。 如果希望學習更多有關 XML 的內容,請訪問我們的 [XML 教程](/xml/index.asp "XML 教程")。 ## 什么是 Expat? 如需讀取和更新 - 創建創建并處理 - 一個 XML 文檔,您需要 XML 解析器。 有兩種基本的 XML 解析器類型: * _基于樹的解析器_:這種解析器把 XML 文檔轉換為樹型結構。它分析整篇文檔,并提供了 API 來訪問樹種的元素,例如文檔對象模型 (DOM)。 * _基于事件的解析器_:將 XML 文檔視為一系列的事件。當某個具體的事件發生時,解析器會調用函數來處理。 Expat 解析器是基于事件的解析器。 基于事件的解析器集中在 XML 文檔的內容,而不是它們的結果。正因如此,基于事件的解析器能夠比基于樹的解析器更快地訪問數據。 請看下面的 XML 片段: ``` <from>John</from> ``` 基于事件的解析器把上面的 XML 報告為一連串的三個事件: * 開始元素:from * 開始 CDATA 部分, 值:John * 關閉元素: from 上面的 XML 范例包含了形式良好的 XML。不過這個例子是無效的 XML,因為沒有與它關聯的文檔類型聲明 (DTD),也沒有內嵌的 DTD。 不過,在使用 Expat 解析器時,這沒有區別。Expat 是不檢查有效性的解析器,忽略任何 DTD。 作為一款基于事件、非驗證的 XML 解析器,Expat 快速且輕巧,十分適合 PHP 的 web 應用程序。 注釋:XML 文檔必須形式良好,否則 Expat 會生成錯誤。 ## 安裝 XML Expat 解析器是 PHP 核心的組成部分。無需安裝就可以使用這些函數。 ## XML 文件 將在我們的例子中使用下面的 XML 文件: ``` <?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</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); ?> ``` 以上代碼的輸出: ``` -- Note -- To: George From: John Heading: Reminder Message: Don't forget the meeting! ``` ### 工作原理解釋: * 通過 xml_parser_create() 函數初始化 XML 解析器 * 創建配合不同事件處理程序的的函數 * 添加 xml_set_element_handler() 函數來定義,當解析器遇到開始和結束標簽時執行哪個函數 * 添加 xml_set_character_data_handler() 函數來定義,當解析器遇到字符數據時執行哪個函數 * 通過 xml_parse() 函數來解析文件 "test.xml" * 萬一有錯誤的話,添加 xml_error_string() 函數把 XML 錯誤轉換為文本說明 * 調用 xml_parser_free() 函數來釋放分配給 xml_parser_create() 函數的內存 ## 更多 PHP Expat 解析器的信息 如需更多有關 PHP Expat 函數的信息,請訪問我們的 PHP XML Parser 參考手冊。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看