当前位置:
开发笔记 >
Android > 正文
一个很方便的XML类!!原创的噢
作者:job2672488 | 来源:互联网 | 2021-09-14 13:29
一个很方便的XML类!!原创的噢
// 本人不熟悉XML,可能注解对XML的描述有误 // 这只是个思想,要实现的话应该略加修整,可以把一些不常用条件查询的数据用XML保存 // 如虚拟社区的 用户资料,一般只有用户自己或其他用户指定了他的USERNAME才会显示 // 剩下每次都要开启、查询、解释数据集、关闭数据库的消耗。 define("enter",chr(13).chr(10)); class DATA_XML //关键!!!一个自定义类 { var $parser; //XML解释器 var $tags; //XML标签 var $on; // var $root; // 根元素 var $Data = array(); // 元素数组 function DATA_XML($filename,$root) //类初始函数 filename文件名,root根元素 { $this->root = $root; // 初始根元素 $this->parser = xml_parser_create();//创建解释对象 xml_set_object(&$this->parser,&$this);//设置对象 xml_set_element_handler($this->parser,"tag_on","tag_off");//设置元素管理函数 xml_set_character_data_handler($this->parser,"getdata"); //设置数据管理事件 xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, 0); //要求严格区分大小写 if( file_exists($filename) ) //找到文件吗? {//找到 $fp = fopen($filename,"r"); // 只读打开 $c = fread($fp,filesize($filename)); //读取数据 fclose($fp);//关闭 $this->parse($c); //设置解释对象 } else { echo "ooooo"; //!?!好象是调试时用的,去掉 else好了 } } function parse($data)//解释函数 { xml_parse($this->parser,$data); } function tag_on($parser,$tag,$attributes)//发现元素触发函数 { $this->on = true; // 已经触发过 $this->tags = $tag; //echo $tag; } function tag_off($parser,$tag) //元素结素函数 { $this->on = false; // 元素结素 } function getdata($parser,$cdata) //取出元素 { if($this->on && $this->tags!=$this->root) {//验证一下比较好,(现在是否为元素的开始,并且不是根元素?) $this->Data[$this->tags]=trim($cdata); // 关键啊!!用标签做数组表,并给这个数组元素付上数据 //echo trim($cdata); //echo $this->tags; //echo "\n"; } } function check($str) {//检查字符 if( strlen($str)<1 )//如果是空字符 return ' ';//返回 ' ' else return $str;//否则原路返回(不然XML好象会不做结束标记) } function saveas($filename)//另存为 { $c=''.enter; //这个不用说了吧,enter是define("enter",chr(13).chr(10)); $c.="<".$this->root.">".enter; //首先设定一下根元素 for( reset($this->Data);$i=key($this->Data);next($this->Data)) {//开始举出所有数据啦 $c.= "<".$i.">".$this->check($this->Data[$i])."".$i.">".enter; // 用数组表名做元素标签,并加上数据内容 } //echo $c; $c.="".$this->root.">".enter;//结束标签 $fp = fopen( $filename , "w" );//写入文件 fwrite($fp,$c); fclose($fp); } }; /*新键一个XML文件 $xml = new DATA_XML(路径."arm.xml","DATA"/*根元素*/); $xml->Data["UserName"]="关羽"; $xml->Data["Nick"]="关云长"; $xml->saveas( 路径."arm.xml"); unset( $xml ); // 读取一个文件 $xml = new DATA_XML(路径."arm.xml","DATA"); echo $xml->Data["Nick"];//显示一下? $xml->Data["Nick"]="关老爷";//UPDATE $xml->Data["Master"]="刘备";//INSERT INTO $xml->saveas(路径."arm.xml");//另存为覆盖本身 */ ?>
推荐阅读
本文介绍了如何利用ObjectMapper实现JSON与JavaBean之间的高效转换。ObjectMapper是Jackson库的核心组件,能够便捷地将Java对象序列化为JSON格式,并支持从JSON、XML以及文件等多种数据源反序列化为Java对象。此外,还探讨了在实际应用中如何优化转换性能,以提升系统整体效率。 ...
[详细]
蜡笔小新 2024-11-08 13:21:48
在 Android 应用开发中,实现全屏模式和无标题栏设计是提升用户体验的重要手段。本文详细介绍了如何通过 Java 代码实现取消标题栏 `this.requestWindowFeature(Window.FEATURE_NO_TITLE)`,并进一步探讨了全屏模式的多种实现方法和最佳实践,帮助开发者打造更加沉浸式和美观的用户界面。 ...
[详细]
蜡笔小新 2024-11-08 12:30:47
在探讨REST与RPC这两种API架构风格的选择时,本文首先介绍了RPC(远程过程调用)的概念。RPC允许客户端通过网络调用远程服务器上的函数或方法,从而实现分布式系统的功能调用。相比之下,REST(Representational State Transfer)则基于资源的交互模型,通过HTTP协议进行数据传输和操作。本文将详细分析两种架构风格的特点、适用场景及其优缺点,帮助开发者根据具体需求做出合适的选择。 ...
[详细]
蜡笔小新 2024-11-07 12:00:58
在本文中,我们将为 HelloWorld 项目添加视图组件,以确保控制器返回的视图路径能够正确映射到指定页面。这一步骤将为后续的测试和开发奠定基础。首先,我们将介绍如何配置视图解析器,以便 SpringMVC 能够识别并渲染相应的视图文件。 ...
[详细]
蜡笔小新 2024-11-07 10:52:57
《Spring in Action 第4版:全面解析与实战指南》不仅详细介绍了Spring框架的核心优势,如简洁易测试、低耦合特性,还深入探讨了其轻量级和最小侵入性的设计原则。书中强调了声明式编程的优势,并通过基于约定的方法简化开发流程。此外,Spring的模板机制有效减少了重复代码,而依赖注入功能则由容器自动管理,确保了应用的灵活性和可维护性。 ...
[详细]
蜡笔小新 2024-11-07 09:21:12
### SSAS入门指南:基础知识与核心概念解析Analysis Services 是一种专为决策支持和商业智能(BI)解决方案设计的数据引擎。该引擎能够为报告和客户端应用提供高效的分析数据,并支持在多维数据模型中构建高性能的分析应用。通过其强大的数据处理能力和灵活的数据建模功能,Analysis Services 成为了现代 BI 系统的重要组成部分。 ...
[详细]
蜡笔小新 2024-11-07 03:53:06
在使用SSH框架进行项目开发时,经常会遇到一些常见的问题。例如,在Spring配置文件中配置AOP事务声明后,进行单元测试时可能会出现“No Hibernate Session bound to thread”的错误。本文将详细探讨这一问题的原因,并提供有效的解决方案,帮助开发者顺利解决此类问题。 ...
[详细]
蜡笔小新 2024-11-07 03:17:49
本文探讨了如何有效地构建和优化微信公众平台账号,涵盖了用户信息管理、内容创作与发布、互动策略及数据分析等方面。通过合理设置用户信息字段,如用户名、昵称、密码、真实姓名和性别等,确保账号的安全性和用户体验。同时,文章还介绍了如何利用微信公众平台的各项功能,提升用户参与度和品牌影响力。 ...
[详细]
蜡笔小新 2024-11-06 18:47:33
本文探讨了资源访问的学习路径与方法,旨在帮助学习者更高效地获取和利用各类资源。通过分析不同资源的特点和应用场景,提出了多种实用的学习策略和技术手段,为学习者提供了系统的指导和建议。 ...
[详细]
蜡笔小新 2024-11-06 18:03:41
JavaScript XML操作实用工具类:XmlUtilsJS技巧与应用 ...
[详细]
蜡笔小新 2024-11-06 15:15:26
本文探讨了如何利用Java解析YAML文件并将其转换为JSON格式,同时支持JSON和XML的结构化查询。YAML、JSON和XML这三种数据格式通过其名称作为文件扩展名,便于区分和使用。文章详细介绍了这些格式的层次结构和数据表示方法,并重点讨论了在数据传输过程中,XML的特性和优势。此外,还提供了具体的代码示例和实现步骤,帮助开发者高效地进行数据格式转换和查询操作。 ...
[详细]
蜡笔小新 2024-11-06 14:35:20
Spring框架的核心组件与架构解析 ...
[详细]
蜡笔小新 2024-11-06 14:16:03
本文详细解析了微信服务端示例类的功能与应用。其中,`ClientResponseHandler` 类主要用于处理微信支付所需的响应数据,而 `TenpayHttpClient` 则是对 HTTP 请求(包括 GET 和 POST 方法)进行了封装,以便在内部调用时更加便捷和高效。这些工具类在实际开发中起到了关键作用,开发者无需深入了解其底层实现细节,即可轻松集成微信支付功能。 ...
[详细]
蜡笔小新 2024-11-06 14:08:24
在前文探讨了Spring如何为特定的bean选择合适的通知器后,本文将进一步深入分析Spring AOP框架中代理对象的生成机制。具体而言,我们将详细解析如何通过代理技术将通知器(Advisor)中包含的通知(Advice)应用到目标bean上,以实现切面编程的核心功能。 ...
[详细]
蜡笔小新 2024-11-06 10:11:10
在本篇进阶指南的第二部分中,我们将继续探讨 React 与 Webpack 的高级配置技巧。通过实际案例,我们将展示如何使用 React 和 Webpack 构建一个简单的 Todo 应用程序,具体包括 `TodoApp.js` 文件中的代码实现,如导入 React 和自定义组件 `TodoList`。此外,我们还将深入讲解 Webpack 配置文件的优化方法,以提升开发效率和应用性能。 ...
[详细]
蜡笔小新 2024-11-06 10:03:07
job2672488
这个家伙很懒,什么也没留下!