首页 > 编程语言 >php xml相关操作

php xml相关操作

时间:2024-11-12 17:19:26浏览次数:1  
标签:xml node return content 操作 array php data

<?php
class Utils{
    /**
     * 将数据转为XML
     */
    public static function toXml($array){
        $xml = '<xml>';
        forEach($array as $k=>$v){
            $xml.='<'.$k.'><![CDATA['.$v.']]></'.$k.'>';
        }
        $xml.='</xml>';
        return $xml;
    }
    
    public static function dataRecodes($title,$data){
        $handler = fopen('result.txt','a+');
        $content = "================".$title."===================\n";
        if(is_string($data) === true){
            $content .= $data."\n";
        }
        if(is_array($data) === true){
            forEach($data as $k=>$v){
                //$content .= "key: ".$k." value: ".$v."\n";
                $content.='<'.$k.'><![CDATA['.$v.']]></'.$k.'>'."\n";
            }
        }
        $flag = fwrite($handler,$content);
        fclose($handler);
        return $flag;
    }

    public static function parseXML($xmlSrc){
        if(empty($xmlSrc)){
            return false;
        }
        $array = array();
        libxml_disable_entity_loader(true);
        $xml = simplexml_load_string($xmlSrc);
        $encode = Utils::getXmlEncode($xmlSrc);

        if($xml && $xml->children()) {
            foreach ($xml->children() as $node){
                //有子节点
                if($node->children()) {
                    $k = $node->getName();
                    $nodeXml = $node->asXML();
                    $v = substr($nodeXml, strlen($k)+2, strlen($nodeXml)-2*strlen($k)-5);
                    
                } else {
                    $k = $node->getName();
                    $v = (string)$node;
                }
                
                if($encode!="" && $encode != "UTF-8") {
                    $k = iconv("UTF-8", $encode, $k);
                    $v = iconv("UTF-8", $encode, $v);
                }
                $array[$k] = $v;
            }
        }
        return $array;
    }

    //获取xml编码
    function getXmlEncode($xml) {
        $ret = preg_match ("/<?xml[^>]* encoding=\"(.*)\"[^>]* ?>/i", $xml, $arr);
        if($ret) {
            return strtoupper ( $arr[1] );
        } else {
            return "";
        }
    }
}
?>

 

标签:xml,node,return,content,操作,array,php,data
From: https://www.cnblogs.com/andydao/p/18542319

相关文章

  • Django数据库操作
    1.ORM框架Django提供的ORM框架,可以简化MySQL代码,节省书写MySQL语句的时间。具体功能如下:创建、修改、删除数据库的表(不用写SQL语句,无法创建数据库)。修改表中数据(不用写SQL语句)。2.ORM使用安装mysql包注:Windows系统大概率安装失败,可直接去https://pypi.org/proje......
  • Lec 07 操作系统管理页表映射
    lec07操作系统管理页表映射0Contents1操作系统设置页表映射何时设置页表映射?操作系统自己使用的页表--在启动时填写--映射全部物理内存虚拟地址=物理地址+固定偏移(直接映射,DirectMapping)思考:为什么需要直接映射?应用进程的页表--何时设置?2立即映......
  • MIT 操作系统实验问题记录
    Linux连接vscodeRemote-SSH设置:在实验环境搭建时只用官网提供的是不够的还需要安装在gitpush到远程仓库的过程中由于clone时用的是url=git://g.csail.mit.edu/xv6-labs-2020这个所以得创建一个新的分支来向远程仓库pushgitremoteaddgiteehttps://gitee.com/zhang......
  • Sigrity SPEED2000 Power Ground Noise Simulation模式如何进行信号时域仿真操作指导(
    SigritySPEED2000PowerGroundNoiseSimulation模式如何进行信号时域仿真操作指导(二)-三个IBIS模型SigritySPEED2000PowerGroundNoiseSimulation模式如何进行信号时域仿真操作指导(一)-单个IBIS模型介绍了在单个IBIS模型的激励下,发送和接收端的电压时域波形,当三个IB......
  • SQLSever将csv文件中的数据导入数据库中的某个表中的操作以及可能会出现的报错
    注:导入数据前,检查一下数据类型是否与数据库中的数据类型相匹配第一种方法:首先打开SQLSever数据库,右击你的数据库找到任务后点开导入平面文件,如图 在弹开的窗口中点击下一步 接下来 填写完后点击下一步,跳转到预览数据的页面,会显示出表中的前20条数据,在检查没有错误后接......
  • Windows Resource Protection (WRP) 是微软引入的一项系统保护机制,旨在保护 Windows
    什么是WindowsResourceProtection(WRP)?WindowsResourceProtection(WRP)是微软引入的一项系统保护机制,旨在保护Windows操作系统中的关键资源,包括系统文件、驱动程序、注册表设置以及系统配置文件等。WRP是WindowsVista中首次引入的,它加强了对操作系统核心文件和资源的......
  • System File Checker(简称 SFC)是 Windows 操作系统中的一个内置工具,用于扫描和修复损坏
    SystemFileChecker(简称SFC)是Windows操作系统中的一个内置工具,用于扫描和修复损坏或丢失的系统文件。它帮助用户恢复Windows操作系统中重要的文件和组件,以确保操作系统能够正常运行。什么是SFC(SystemFileChecker)?SFC是一个命令行工具,通过扫描Windows系统中的保护文件......
  • 在Windows 10中,设置默认浏览器通常需要通过图形界面进行操作,但也可以通过批处理文件(BA
    在Windows10中,设置默认浏览器通常需要通过图形界面进行操作,但也可以通过批处理文件(BAT)或者注册表(REG)文件来间接实现。这些方法比较复杂,且可能会有一定的风险,请在执行前确保备份相关数据。方法1:通过注册表(REG)文件设置默认浏览器默认浏览器的信息存储在注册表中,可以通过修改注册......
  • 通用操作日志组件 - mzt-biz-log
    1、什么是mzt-biz-log此组件解决的问题是:「谁」在「什么时间」对「什么」做了「什么事」简单来讲,就是来用记录谁在什么时间做了什么事情。git地址:https://github.com/mouzt/mzt-biz-log2、为什么是使用mzt-biz-log减少重复造轮子。3、mzt-biz-log入门操作1、mav......
  • 云原生-docker安装与基础操作
    一、云原生Docker介绍Docker在云原生中的优势二、docker的安装三、docker的基础命令1.dockerpull(拉取镜像)2.dockerimages(查看本地镜像)3.dockerrun(创建并启动容器)4.dockerps(显示容器)5.dockerstart(启动容器)6.dockerexec(交互模式进入容器)7.退出容器8.......