24.2.2 使用SAX解析XML
SAX用于解析XML文档的接口,它是基于回调函数形式的调用。下面我们开始解析这个样例XHTML文档。
第一步,我们创建解析的对象。
$xml = xml_parser_create('UTF-8');
选择的参数是'UTF-8',告诉PHP SAX扩展使用什么字符集编码进行解析,如UTF-8、GBK/GB2312。
如果这个方法执行成功,将返回XML分析器句柄,可以再使用其他方法继续分析这个XML文档。
因为SAX工作于事件方式,在本例中需要设置该句柄,我们把焦点放在两个指定的句柄上:开始(start_handler)和结果(end_handler)标志,以及一个字符集句柄
|
这些声明设置这个句柄,但必须在实行任何行为之前发生。让我们看这个句柄方法如何实现,在上次的声明中,开始句柄通过三个参数:XML解析器对象、命名标记和一个包含这个标记的属性的关联数组属性。
|
要使我们的测试脚本工作,我们需要使这个字符串句柄显示所有内容,如下。
|
之后,我们开始实现所有的句柄操作,可以开始解析XML文件。
xml_parse($xml, file_get_contents('test1.xhtml')); |
上面的回调函数输出的结果是这个样子的。
>>>HTML XMLNS='http://www.w3.org/1999/xhtml' XML:LANG='en' LANG='en' |
可以看到,输出结果看来不是很美观,里面还有很多空白数据和无用的字符。我们可以把所有的结果数据放在一个缓冲区中,只输出有开始和结果标签的数据项,如下面的脚本。
|
下面是输出的结果。
|
| 回书目 上一节 下一节 |
|
· 第六章 你能帮我吗?.. · Linux笔试面试题选摘测.. · 08年5月软考网管上午真.. · 性能测试从零开始 目录 · 08年5月软考网工上午真.. · 上周拒绝服务攻击(DDo.. |
· 08年5月各大网上书店及.. · 2008年5月24日软考试题.. · 软件设计师专家临考模.. · 上周网络管理员专家自.. · 网络工程师自测获奖名.. · 08年4月各大网上书店及.. |
|
||||
| · NAC安全访问控制 · 网络布线测试仪器 · Windows Server 2008专.. · Windows远程桌面应用 · 网络故障排除宝典 · 运营商封堵ADSL共享 中.. · 解析35岁技术人的价值.. · 世纪枭雄比尔盖茨的王.. |
· 主流品牌防火墙配置 · ASP.NET开发教程 · 超级计算机TOP500专题 · Vista SP1对决XP SP3 · SQL Server 2008/2005.. · 程序员如何成长? · C#技术开发指南 · 虚拟化技术还有点“虚” |
|||
|
||||
| · SOA 面向服务架构 · SQL Server 2008/2005.. · Apache技术专题 · 三层交换技术专题 · SQL Server入门到精通 · Windows远程桌面应用 · C#技术开发指南 · Apache技术专题 |
· Windows集群服务应用 · C#技术开发指南 · 国际文档格式标准开战 · 路由器设置与口令恢复 · Linux 集群技术专题 · PHP开发应用手册 · SOA 面向服务架构 · 企业数据恢复指南 |
|||
|
||||
| · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · C#技术开发指南 · 三层交换技术专题 · Apache技术专题 · C#技术开发指南 |
· Windows远程桌面应用 · 企业数据恢复指南 · Windows集群服务应用 · 路由器设置与口令恢复 · Linux 集群技术专题 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · 反垃圾邮件技术应用 |
|||