给 XML 初学者

深入了解XML:初学者的全面指南 阅读详情
【简 介】
  差不多每天都有人问“什么是 XML”,“XML 能做什么”,“XML 能不能替我做这个”,“XML 会取代什么” 等等诸如此类的问题。由于最近一段时间稍微对 xml 使用了一下,我来谈谈自己的感觉。这些经验都很浅显,任何一个用过 xml 的人都有,并且见仁见智,只不过我算刚刚走过这段路,对自己一开始的困惑,误解还记得清,所以拿出来和大家分享一下。
差不多每天都有人问“什么是 XML”,“XML 能做什么”,“XML 能不能替我做这个”,“XML 会取代什么” 等等诸如此类的问题。由于最近一段时间稍微对 xml 使用了一下,我来谈谈自己的感觉。这些经验都很浅显,任何一个用过 xml 的人都有,并且见仁见智,只不过我算刚刚走过这段路,对自己一开始的困惑,误解还记得清,所以拿出来和大家分享一下。

  

  我觉得初学者可能会走近的误区:  

  1. XML 是不是 HTML 的取代者  

  不是。写得好的 html 应该是一个 well-formed 的 xml 文档,其他方面最好不要把他们放在一个水平线上比较  

  2. XML 是不是数据库的取代者  

  不是。  

  3. XML 是不是...的取代者  

  都不是。
  

  这个结论可能听上去很滑稽:XML 是非常非常重要的东西,但它什么都取代不了。但这并不奇怪,有人把它比做 ASCII 标准,他们是一切一切的基础,但并没有(也不需要)取代什么。(但是就如同 ASCII 取代了一些没有成大器的字符集定义,XML 也会取代你在应用中自己定义的一些数据传输规范,但没有什么特别主流的东西。)  

  刚开始学 XML (或者说没开始学之前)的时候最爱问的一个问题肯定是:使用 XML 能给我带来什么好处?
  

  我觉得从某种角度上说,使用 XML 有些象使用 OO 面向对象:  

  - 你可以用它,你也可以不用它。

  - 如果你的应用非常简单,用它不一定方便,没准儿用了效果还会更差。

  - 和其他实际东西比如数据库,MTS,Web Server比起来,它更像是一个概念,一种方法

  - 项目越大,它的发挥余地越大,作用越大。

  - 一旦真正理解后,哪怕不用 xml parser,也不妨碍你使用这个概念,如同可以抛开特定语言使用 OO。

  - ......  

  好像更抽象,更没谱儿了吧。

  那就随便举个例子。比如你本来想在 bbs 应用中的两个模块之间传一些数据:  

  - 发言人

  - 密码

  - 标题

  - 内容  

  使用四个参数是不太现实的,因为你随时可能要扩展功能,比如再加上个

  - 表情符号

  等等  

  不可能每次加个功能,就重新定义一遍函数。

  所以最简单的方法是把他们合并起来作为一个参数传递给函数。

  在有 xml 之前,你可能会使用分隔符:

  str = "发言人=张三;密码=**;标题=abc;内容=xyz"

  到 server 那边使用 dictionary 或 collection 或 split 等等方法把他们拆开。

  (当然可以自己定义对象啦,结构啦等等,但多数情况下还得是纯字符串--比如另一个模块不是自己开发的。)  

  这种传递字符串的方法有几个问题,总结成两个最大的方面就是:  

  1. 正确的解析它很麻烦。(比如标题正好是“发言人=张三;”怎么办)

  2. 是平面的,没有层次型结构  

  你可以写些函数来解决这些问题,比如确保里面肯定有“发言人”,“密码”等等;再写些函数做一下字符转义,再写些函数制造出层次性的效果...  

  够了!咱还是用 XML 吧。在我目前浅显的认识里:  

  - XML 是用来传递数据的

  - XML 让这些数据有了结构 -- 一个树型结构

  - xml 有全套的操作这种结构的方法

  - xml 规范(或者说的实际点,xml parser)帮你确定你创建的字符串是合法的

  - xml 规范(或者说的实际点,xml parser)中有办法验证这个合法性

  - 对于拿到这个字符串的 server component 来说,可以用 xml 中现成的方法来操作它,

  这就是 xpath, pattern,类似于 T-SQL 语句。(但记住 xml 是树型结构的)

  - XSLT 使用 xpath 对 xml 进行转换(类似于 DTS),其中一种特例是把 XML 转换成 HTML 输出。
全面掌握XML:初学者必备手册 本文还有配套的精品资源,点击获取 简介:XML是一种用于数据标记的语言,广泛应用于互联网数据交换和应用程序间的数据共享。本手册将引导初学者学习XML的基础知识、命名规则、文档类型定义(DTD)、XML Schema、命名空间、处理指令、实体、解析方法、XPath、XSLT以及XML在Web服务中的应用和验证过程。通过理论知识和实践练习相结合的方式,初学者能够快速入门并理解X... 阅读详情

相关推荐

初学者必看:XML基础实例详解

XML(Extensible Markup Language,可扩展标记语言)是一种用于描述数据结构的通用文本标记语言。它通过自定义标签的形式,实现数据的结构化表达,广泛应用于跨平台数据交换、配置文件管理、Web服务通信等场景。相较于HTML用于展示内容,XML更侧重于准确描述数据含义,具备良好的可读性与可解析性。本章将深入解析XML的核心理念,帮助读者建立对其应用场景与技术优势的系统性认知,为后续章节的语法学习与实战应用打下坚实基础。本章详细讲解了XML文档的声明方式、基本结构组成以及书写规范。

weixin_42327217的博客 968

XML的二十个热点问题

http://www.netqu.com 中华技术网会员 Wuxuehui 发布翻译:Chen Zhihong 编辑:孙一中这些日子,几乎每个人都在谈论XML (Extensible Markup Language),但是很少有人真正理解其含义。XML的推崇者认为它能够解决所有HTML不能解决的问题,让数据在不同的操作系统或应用之间进行灵活交换。确实,所有的观察家们都同意XML将引发一场内容发布和

深度Java 4737

双RTX 3090实战:如何用vLLM低成本部署Qwen2.5-14B大模型(附避坑清单)

本文详细介绍了如何利用双RTX 3090显卡低成本部署Qwen2.5-14B大模型的完整指南,包括硬件选型、环境配置、vLLM优化及生产环境调优。重点解析了BF16混合精度在显存占用与推理质量上的平衡策略,并提供了实用的避坑清单和性能调优技巧,帮助开发者高效实现大模型部署。

pz890123456的博客 702

推荐给XML初学者的一些站点

http://java.sun.com/xml/jaxp/dist/1.1/docs/tutorial/overview/3_apis.htmlhttp://www.w3.org/XML/http://www.kxml.org/http://java.sun.com/xml/jaxp/dist/1.0.1/docs/binding/DataBinding.htmlhttp://java.sun.c

mingjava的专栏 3169

软件项目成本控制实战:从COCOMO模型到挣值分析的5个关键步骤

本文详细介绍了软件项目成本控制的5个关键步骤,从COCOMO模型估算到挣值分析预警,帮助中小型团队精准管理预算。通过简化COCOMO II的有机模式、动态建立成本基准、轻量化挣值分析等方法,项目经理可以有效应对预算超支和进度延误问题,提升项目成功率。

weixin_30733003的博客 227

利用HTML+CSS设计PPT:html-to-pptx实现自动化转换与可编辑输出

在办公自动化和前端开发领域,将网页技术应用于文档生成是一个重要的技术方向。其核心原理在于通过解析HTML/CSS的结构与样式,将其映射为目标文档的原生对象模型。这项技术的价值在于,它能够将Web技术栈强大的布局与样式能力(如Flexbox、CSS Grid)与办公软件(如Microsoft PowerPoint)的广泛兼容性和可编辑性相结合。在实际应用场景中,这种技术特别适合需要快速生成兼具设计感与实用性的演示文稿,例如数据报告、产品发布和营销材料。本文探讨的html-to-pptx项目正是这一思路的工程实

weixin_30652491的博客 487

使用XML的五种场合 【收藏文章】

在很多研讨会和培训班上我遇到过许多人,他们还不明白为什么要使用XML也不知道如何在他们的应用中使用XML。一些来自诸如Gartner公司的报告建议说,商业公司不能再做局外人了,不能对XML置之不理。如果你还不清楚XML到底有什么好处的话,你并不是唯一的人。   我决定把与人们和媒体关于XML话题的交谈整理成文,列出XML在应用中的五个最令人喜爱的用法。尽管这些并不能包含XML的所有潜在应用,至少是

沉默的骆驼…… 946

EPS+ArcGIS+CASS三剑客:等高线裁剪的完整工作流与避坑指南

本文详细介绍了EPS、ArcGIS和CASS三款软件在等高线裁剪中的协同工作流程与避坑指南。通过发挥各软件优势,解决数据完整性、拓扑准确性和流程可靠性等核心挑战,提升40%以上的工作效率。特别适合大型测绘项目中复杂地形的处理,涵盖数据准备、核心处理到后期优化的全流程。

weixin_30352645的博客 620

XML初学者必读

XML初学者必读 差不多每天都有人问“什么是 XML”,“XML 能做什么”,“XML 能不能替我做这个”,“XML 会取代什么” 等等诸如此类的问题。由于最近一段时间稍微对 xml 使用了一下,我来谈谈自己的感觉。这些经验都很浅显,任何一个用过 xml 的人都有,并且见仁见智,只不过我算刚刚走过这段路,对自己一开始的困惑,误解还记得清,所以拿出来和大家分享一下。   我觉得初学者可能会走近的

欲穷千里目,更上一层楼 1516

PCB数据集

整理了一部分PCB数据集

m0_57996537的博客 3867

Vienna整流器双PI闭环仿真:从SVPWM调制到中点电位平衡的实践解析

本文深入解析Vienna整流器双PI闭环仿真技术,涵盖SVPWM调制和中点电位平衡的实践细节。通过详细的MATLAB/Simulink仿真搭建流程和常见问题排查方法,帮助工程师掌握高效整流器控制策略,提升系统稳定性和动态响应性能。

weixin_29168153的博客 328

XML简要教程(适合初学者)

XML简要教程XML 指可扩展标记语言(eXtensible Markup Language), 被设计用来传输和存储数据。是各种应用程序之间进行数据传输的最常用的工具。XML提供了一套夸平台,跨网络,跨应用程序的语言的描述方式。使用XML可以方便的实现数据交换,系统配置,内容管理等。XML 可被类似记事本这样的简单的文本编辑器来创建和编辑。不过,在您开始使用 XML 进行工作时,您很快会发现...

cnds123的专栏 2万+

RT-DETR改进策略【Conv和Transformer】| ICCV-2023 iRMB 倒置残差移动块 轻量化的注意力模块

本文记录的是利用模块优化的目标检测网络模型。的作用在于克服了常见模块无法同时吸收CNN 效率建模局部特征和利用Transformer 动态建模能力学习长距离交互的问题。相比一些复杂结构或多个混合模块的方法,能更好地权衡模型成本和精度。本文将其用于的模型改进和二次创新,更好地突出重要特征,提升模型性能。Rethinking Mobile Block for Efficient Attention-based Models从微观角度看,由和组成。及其改进的实现代码如下: 四、创新模块 4.1 改进点1⭐ 模块

Limiiiing的博客 817

初学者的struts之struts.xml小结

初学struts,还没入门,看了一点,然后理理自己的思绪。不对之处,还请见告,也请原谅。最后附上权威的执行流程 考虑一下MVC模型, 在struts中, C:FilterDispatcher V:page M:action 回想一下这个流程 1、首先是当tomcat收到一个HttpServletReques之后,根据web.xml是否通知struts2

csdnfirst2的专栏 2407

芒果YOLO11改进81:主干Backbone篇之DCNv3结构:即插即用|使用pytorch代码实现,并针对YOLO11专门优化模块

芒果YOLO11改进81:主干Backbone篇之DCNv3结构:即插即用|使用pytorch代码实现,并针对YOLO11专门优化模块

包括YOLOv5、YOLOv7、YOLOv8等模型改进 740

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

简析JAVA的XML编程(java-xml初学者)

简析JAVA的XML编程(java-xml初学者)作者名字忘了,當時時在網上找的一貼子,以后看到了再補上,對不住了。个人认为这篇文章通俗易懂,值得推荐。XML作为全球通用的结构化语言,越来越受人们青睐,各种开发平台(比如Microsoft Studio系列、Oracle系列、Inprise Borland系列等)也都把支持XML开发作为宣传口号之一 。由于笔者所从事的电子政务开发较早的引入

冯立彬的博客 6971

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

如何快速掌握node-xml2js:面向初学者的完整XML解析指南

node-xml2js 是一款功能强大的 Node.js XML 解析库,它能够将 XML 数据轻松转换为 JavaScript 对象,同时也支持反向将 JavaScript 对象构建为 XML。这个简单易用的工具让处理 XML 数据变得前所未有的简单,特别适合需要在 JavaScript 环境中处理 XML 格式数据的开发人员。 ## 🚀 为什么选择 node-xml2js? ### 简单

gitblog_00483的博客 482

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

对初学者介绍XML

原文地址:http://www.dingos.cn/index.php?topic=885.0介绍可扩展标记语言(XML)是一种多用途标记语言。作为一种扩展语言分类因为它允许用于自定义标签。在软件工程中,可扩展性指的的系统可以通过改变或添加的新来修改。XML的最原始目的是方便不同信息系统的数据共享,特别是通过Internet进行数据交换。XML是由万维网联盟(W3C)推荐的。这是一种免费开

夜晚回家 385

php程序xml有必要学习吗,对初学者非常有用的PHP技巧

对初学者非常有用的PHP技巧echo "I is : $i ';}echo print_footer();那么,为什么你应该做输出缓冲呢:你可以在将输出发送给浏览器之前更改它,如果你需要的话。例如做一些str_replaces,或者preg_replaces,又或者是在末尾添加一些额外的html,例如profiler/debugger输出。发送输出给浏览器,并在同一时间做php处理并不是好主意。你...

weixin_39860123的博客 216

XML初学者必须知道的十条基础知识

1.XML是用来组织数据结构的     结构数据包括如:电子数据表、地址簿、控制器参数、财务交易及技术绘图等。XML是一系列文字格式设计的规则(也可称之为指导方针或惯例),来帮助你组织数据结构。XML不是一种程序语言,所以你不必一定是程序员,同样可以使用或学习它。XML使计算机简单地生成及读取数据,并确保数据结构精确。XML避免了一般语言设计的缺陷:它是可扩展的、跨平台、支持国际化及区域化的格式,

JAVA编程阻击手 520

XML DOM初学者指南

     DOM是什么      如何使用DOM      如何Load一个文档      处理错误      如何从XML文档中取得信息      如何遍历XML文档      下一步该干什么      简介:      作为VB的开发者你可能会接触eXtensible Markup Language (XML)文档。你现在想处理XML文档并把它集成到你的方案中。你可以自己编程解析,把它当普通文

有梦想就能飞翔 615

总结xml,适合初学者

以下適我在網上收集的,如有雷同,不要見怪。謝謝!!希望大家發現什麼好的也帖出來大家一起共享,謝謝!!XML将被用来描述、存储数据,而HTML则是用来格式化和显示数据的。XML DTD/Schema ; 数据库表结构XML 文件           ; 数据库表内容XML的文档格式

zxcdhm的专栏 595
上一篇: apache的..%5c漏洞原因源代码分析
下一篇: 使用ARP分组检测处于混杂模式的网络节点
freexploit
博客等级 码龄22年 315粉丝 778原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值