Expat Parser解析xml檔案

2022-07-24 02:27:07 字數 1307 閱讀 8367

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...