SAX方式获取XML内容

2024-04-04 15:18
文章标签 xml 内容 方式 获取 sax

本文主要是介绍SAX方式获取XML内容,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

<?php
    header("Content-Type:text/html;charset=utf-8");
    //创建XML解析器
    $parser = xml_parser_create('utf-8');
    //规定如何让处理我们遇到的标签和数据
    /*
        参数1,当前解析器
        参数2,开始标签处理函数
        参数3,结束标签处理函数

    */
    xml_set_element_handler($parser,'start_element','end_element');
    /*
        参数1,解析器
        参数2,开始标签名
        参数3,属性名

    */

    function start_element($parser,$name,$attr){
            echo '开始标签'.$name.'<br/>';
    }
    /*
        参数1,解析器
        参数2,结束标签名

    */

    function end_element($parser,$name){
            echo '结束标签'.$name.'<br/>';
    }

    /*
        处理数据
        参数1,解析器资源
        参数2,数据处理器名称

    */

    xml_set_character_data_handler($parser,'data_process');
    /*
        数据处理器
        参数1,当前解析器
        参数2,数据内容

    */
    function data_process($parser,$data){
            echo $data.'<br/>';
    }
    /*
        开始解析之前,需要读入xml文件的内容,解析器处理的是文件的内容不是文件,所以需要先通过文件处理函数获得文件的内容

    */
    $xml_data = file_get_contents('bookshelf.xml');
    /*
        开始解析:
        参数1,解析器
        参数2,解析的数据
        参数3,告诉解析器是否为最后一个数据()否则解析器会继续等待
    */
    xml_parse($parser,$xml_data,true);

    //处理错误
    if($res){
        echo '处理成功';
    }else{
        //失败,处理错误
        var_dump(xml_get_error_code($parser));
        var_dump(xml_get_current_line_number($parser));
        var_dump(xml_get_current_column_number($parser));
        var_dump(xml_error_string(xml_get_error_code($parser)));

    }

这篇关于SAX方式获取XML内容的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/876131

相关文章

内核启动时减少log的方式

内核引导选项 内核引导选项大体上可以分为两类:一类与设备无关、另一类与设备有关。与设备有关的引导选项多如牛毛,需要你自己阅读内核中的相应驱动程序源码以获取其能够接受的引导选项。比如,如果你想知道可以向 AHA1542 SCSI 驱动程序传递哪些引导选项,那么就查看 drivers/scsi/aha1542.c 文件,一般在前面 100 行注释里就可以找到所接受的引导选项说明。大多数选项是通过"_

用命令行的方式启动.netcore webapi

用命令行的方式启动.netcore web项目 进入指定的项目文件夹,比如我发布后的代码放在下面文件夹中 在此地址栏中输入“cmd”,打开命令提示符,进入到发布代码目录 命令行启动.netcore项目的命令为:  dotnet 项目启动文件.dll --urls="http://*:对外端口" --ip="本机ip" --port=项目内部端口 例: dotnet Imagine.M

深入理解RxJava:响应式编程的现代方式

在当今的软件开发世界中,异步编程和事件驱动的架构变得越来越重要。RxJava,作为响应式编程(Reactive Programming)的一个流行库,为Java和Android开发者提供了一种强大的方式来处理异步任务和事件流。本文将深入探讨RxJava的核心概念、优势以及如何在实际项目中应用它。 文章目录 💯 什么是RxJava?💯 响应式编程的优势💯 RxJava的核心概念

【即时通讯】轮询方式实现

技术栈 LayUI、jQuery实现前端效果。django4.2、django-ninja实现后端接口。 代码仓 - 后端 代码仓 - 前端 实现功能 首次访问页面并发送消息时需要设置昵称发送内容为空时要提示用户不能发送空消息前端定时获取消息,然后展示在页面上。 效果展示 首次发送需要设置昵称 发送消息与消息展示 提示用户不能发送空消息 后端接口 发送消息 DB = []@ro

两个月冲刺软考——访问位与修改位的题型(淘汰哪一页);内聚的类型;关于码制的知识点;地址映射的相关内容

1.访问位与修改位的题型(淘汰哪一页) 访问位:为1时表示在内存期间被访问过,为0时表示未被访问;修改位:为1时表示该页面自从被装入内存后被修改过,为0时表示未修改过。 置换页面时,最先置换访问位和修改位为00的,其次是01(没被访问但被修改过)的,之后是10(被访问了但没被修改过),最后是11。 2.内聚的类型 功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。 顺序内聚:

intellij idea generatorConfig.xml

generatorConfig.xml <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-ge

脏页的标记方式详解

脏页的标记方式 一、引言 在数据库系统中,脏页是指那些被修改过但还未写入磁盘的数据页。为了有效地管理这些脏页并确保数据的一致性,数据库需要对脏页进行标记。了解脏页的标记方式对于理解数据库的内部工作机制和优化性能至关重要。 二、脏页产生的过程 当数据库中的数据被修改时,这些修改首先会在内存中的缓冲池(Buffer Pool)中进行。例如,执行一条 UPDATE 语句修改了某一行数据,对应的缓

Android Environment 获取的路径问题

1. 以获取 /System 路径为例 /*** Return root of the "system" partition holding the core Android OS.* Always present and mounted read-only.*/public static @NonNull File getRootDirectory() {return DIR_ANDR

Java 多线程的基本方式

Java 多线程的基本方式 基础实现两种方式: 通过实现Callable 接口方式(可得到返回值):

前端form表单+ifarme方式实现大文件下载

// main.jsimport Vue from 'vue';import App from './App.vue';import { downloadTokenFile } from '@/path/to/your/function'; // 替换为您的函数路径// 将 downloadTokenFile 添加到 Vue 原型上Vue.prototype.$downloadTokenF