expat 解析器是基於事件的解析器。
基於事件的解析器集中在 xml 文件的內容,而不是它們的結構。正因為如此,基於事件的解析器能夠比基於樹的解析器更快地訪問資料。
請看下面的 xml 片段:
jani
基於事件的解析器把上面的 xml 報告為一連串的三個事件:
expat 是不檢查有效性的解析器,忽略任何 dtd。
作為一款基於事件、非驗證的 xml 解析器,expat 快速且輕巧,十分適合 php 的 web 應用程式。
注釋:xml 文件必須形式良好,否則 expat 會生成錯誤。
xml文件:
<?xml version="1.0" encoding="utf-8"?>
老爸兒子
問候最近身體好嗎,天氣變冷,記得多穿衣服
老媽兒子
問候最近身體好嗎,天氣變冷,記得多穿衣服
php檔案:
<?php
$parser=xml_parser_create();
function start($parser,$element_name,$element_attrs)
}function stop($parser,$element_name)
function char($parser,$data)
xml_set_element_handler($parser,"start","stop");
xml_set_character_data_handler($parser,"char");
$fp=fopen("test.xml","r");
while ($data=fread($fp,4096))
xml_parser_free($parser);
?>
解析原理:
通過 xml_parser_create() 函式初始化 xml 解析器
建立配合不同事件處理程式的的函式
新增 xml_set_element_handler() 函式來定義,當解析器遇到開始和結束標籤時執行哪個函式
新增 xml_set_character_data_handler() 函式來定義,當解析器遇到字元資料時執行哪個函式
通過 xml_parse() 函式來解析檔案 "note.xml"
錯誤處理,新增 xml_error_string() 函式把 xml 錯誤轉換為文字說明
呼叫 xml_parser_free() 函式來釋放分配給 xml_parser_create() 函式的記憶體
IOS內建NSXMLParser解析xml
nsxmlparser解析xml格式的資料 用法如下 首先,nsxmlparser必須繼續nsxmlparserdelegate協議 inte ce xmlhelper nsobject 首先設定xml資料,並初始化nsxmlparser void viewdidload 遍例xml的節點 void...
使用原生的NSXmlParser解析xml資料
下面是本人使用原聲nsxmlparser對xml資料進行的解析。這裡有篇有一篇很不錯的教程,使用gdataxml庫對xml資料進行的解析,而且還有對xml資料格式的組建,講解的很是詳細。import viewcontroller.h pragma mark xml解析器 xml資料解析器 inte ...
使用RXMLElement工具類解析XML
現在來寫一篇我最近使用過的一種xml解析的方法的文章。xml解析有多種多樣的方法,包括蘋果自帶的方法和各種工具類,今天我只介紹用rxmlelement的工具類來解析xml。使用步驟 1.首先把xml解析類匯入工程 2.然後在加入框架libxml2.dylib 3.最後把header search p...