XML 知识小课堂

XML详细介绍 阅读详情

XML(Extensible Markup Language,可扩展标记语言)是一种用于存储、传输和描述结构化数据的标记语言。它由 W3C(World Wide Web Consortium) 制定,XML 1.0 于 1998 年正式成为 W3C Recommendation(推荐标准)。

虽然如今 JSON 已成为 Web API 数据交换的主流格式,但 XML 在 RSS、SOAP Web Service、Maven(pom.xml)、Android 布局、AndroidManifest.xml、Office Open XML(docx、xlsx、pptx)、SVG 等领域仍被广泛使用。


一、XML 是什么?

XML 是一种自描述(Self-describing)的结构化数据格式,通过标签嵌套组织数据。它与具体的平台、操作系统和编程语言无关,具有良好的可读性、扩展性和跨平台兼容性,因此长期被用于配置文件、数据交换和文档描述。

核心特点
特点说明
📦 自描述标签具有语义,数据含义清晰易懂
🌳 树形结构采用严格的层级嵌套,适合表示复杂数据
🌐 跨平台可在不同系统和编程语言之间交换数据
🛡️ 支持验证可通过 DTD 或 XML Schema(XSD)验证文档结构和数据类型
📝 可扩展可根据业务需求自定义元素和属性

二、XML 基本语法

<?xml version="1.0" encoding="UTF-8"?>

<!-- 图书馆示例 -->
<library>
    <book id="001">
        <title>Java 核心技术</title>
        <author>张三</author>
        <price currency="CNY">89.00</price>
        <available>true</available>
    </book>

    <book id="002">
        <title>Python 编程</title>
        <author>李四</author>
        <price currency="CNY">69.50</price>
        <available>false</available>
    </book>
</library>
XML 的组成
组成说明示例
XML 声明指定 XML 版本及编码<?xml version="1.0" encoding="UTF-8"?>
元素(Element)XML 数据的基本单位<title>Java</title>
属性(Attribute)为元素提供附加信息<book id="001">
文本内容元素中的实际数据89.00
注释不参与解析,仅供阅读<!-- 注释 -->

XML 语法规则
规则说明
必须有唯一根元素一个 XML 文档只能有一个顶层元素
标签必须闭合<tag></tag> 或 <tag />
区分大小写<Book> 与 <book> 是不同元素
属性值必须加引号可以使用单引号或双引号
特殊字符必须转义&amp;、&lt;、&gt;、&quot;、&apos;

三、常见错误

❌ 错误✅ 正确
<book id=001><book id="001">
<book><title>Java</book></title><book><title>Java</title></book>
<price>5 < 10</price><price>5 &lt; 10</price>
没有根元素必须包含一个根元素

四、XML 实际应用

1. Spring 配置文件
<beans>
    <bean id="userService" class="com.example.UserService">
        <property name="name" value="张三"/>
    </bean>
</beans>

2. RSS 订阅
<?xml version="1.0"?>

<rss version="2.0">
    <channel>
        <title>BugCome 技术博客</title>
        <link>https://bugcome.com</link>

        <item>
            <title>XML 知识小课堂</title>
            <pubDate>Mon, 13 Jul 2026</pubDate>
        </item>

    </channel>
</rss>

3. Android 布局
<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:text="Hello XML!" />

</LinearLayout>

五、进阶技巧

CDATA

CDATA 用于原样保存内容,无需转义特殊字符。

<description>
    <![CDATA[
        5 < 10 && 10 > 5
    ]]>
</description>

XML 命名空间(Namespace)

命名空间用于避免不同 XML 标准之间的标签冲突。

<root xmlns:h="http://www.w3.org/TR/html4/">
    <h:table>
        HTML 表格
    </h:table>
</root>

JavaScript 解析 XML(浏览器环境)
const parser = new DOMParser();

const xmlDoc = parser.parseFromString(xmlString, "text/xml");

const titles = xmlDoc.getElementsByTagName("title");

console.log(titles[0].textContent);
// Java 核心技术

六、XML 常见应用标准

XML 本身是一种通用标记语言,许多行业标准都是基于 XML 构建的,例如:

标准用途
RSS新闻订阅
SOAPWeb Service
SVG矢量图形
XHTMLHTML 的 XML 版本
Maven POMJava 项目配置
Android XML页面布局、资源配置
Office Open XMLWord、Excel、PowerPoint 文件格式

常见的 .docx、.xlsx、.pptx 文件本质上都是基于 XML 构建,并经过 ZIP 压缩得到的文件格式。


七、XML 与 JSON 对比

特性XMLJSON
文件体积较大(标签冗余)较小
可读性良好,层次清晰简洁易读
解析速度相对较慢通常更快
数据类型本身不定义数据类型,内容以文本形式表示,可通过 XSD 约束原生支持字符串、数字、布尔、数组、对象、null
注释标准支持标准 JSON 不支持(部分工具支持 JSONC)
数据验证支持 DTD、XML Schema(XSD)无统一标准验证机制
典型应用配置文件、文档格式、企业系统Web API、前后端数据交换

八、什么时候选择 XML?

推荐使用 XML:

  • 企业系统集成
  • SOAP Web Service
  • 配置文件
  • 文档描述
  • RSS 订阅
  • Office 文档格式
  • Android 布局

推荐使用 JSON:

  • REST API
  • 前后端接口
  • JavaScript 数据处理
  • 微服务通信
  • 移动应用数据传输

九、在线体验

欢迎体验 BugCome XML 格式化工具。

QQ图片20260713125927


📚 关注 BugCome,获取更多开发工具、编程知识与技术小课堂。

课堂管理系统——Android 实现一个课堂管理系统,将已完成的数据库部分增加聊天室部分 apk文件名: apk资源文件: AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" ... 阅读详情

相关推荐

三相Vienna整流器过零点电流畸变?试试这个SVPWM调制波补偿技巧

本文针对三相Vienna整流器在电流过零点附近出现的电流畸变问题,提出了一种基于SVPWM调制波补偿的有效解决方案。该方法通过注入零序分量重构占空比,巧妙解决因拓扑约束导致的调制矛盾,在基本不增加计算复杂度的前提下,显著平滑电流波形,降低THD。

weixin_29212867的博客 114

全面理解xml文件

XML XML相关概念 概述:Extensible Markup Language 可扩展标记语言 功能 ​ 存储数据 配置文件 在网络中传输 xml和html的区别 XML标签都是自定义的,hmtl标签是预先定义的 xml的语法严格,html语法松散 XML是存储数据的,html是展示数据 w3c万维网联盟 语法 基本语法 xml文档的后缀名必须为.xml xml第一行必须定义为文档声明 xml文档中有且仅有一要根标签【就是只能有一个根标签】 属性值必须使用双引号或单引号引起来

weixin_47267628的博客 1万+

第二十一篇: `man`, `tldr`, `explain` - 授人以渔的“终极指令”

我们已经一起学习了19个(组)关键命令,从nvidia-smi到kubectl。但这只是GPU运维武器库中的一小部分。技术日新月异,新的工具、新的参数会不断涌现。这个系列的真正目的,不仅是教会你使用这19件“兵器”,更是希望你掌握学习任何一件新兵器的方法论。这套方法论就是你的“终极指令”。授人以鱼不如授人以渔。至此,《GPU运维指令集:20个关键命令的战地手册》系列已全部完结。我们从nvidia-smi出发,一路探索了监控、诊断、容器、集群、网络、性能等各个维度的命令,最后用自动化脚本将它们串联,又用。

weixin_42587823的博客 1350

XML文件(超详细):XML文件概念、作用、写法、如何用程序解析XML、写入XML、dom4j框架、DTD文档、schema文档

本文章主要讲解XML文件概念、作用、写法,以及如何用程序解析XML文件、写入XML文件、Dom4j(第三方)框架的使用、约束XML的书写格式--DTD文档、schema文档,以及代码的演示。

raining优快云的博客 4万+

Superpowers:可编程AI协作协议与Skill工程化实践

AI编程正从提示词驱动迈向工程化协作新范式。Superpowers并非传统代码补全工具,而是一套定义清晰、可版本控制、可调试复用的AI协作协议——它将AI能力抽象为带输入校验、执行管道、输出契约和元数据声明的Skill(类DSL构件),再通过状态驱动的Workflow编排实现跨平台、可熔断、含人工Checkpoint的自动化流水线。其核心价值在于解决AI生成代码长期存在的不可复现、不可审计、不可交接三大痛点,支撑OpenAPI转TS、Figma转Vue等高复用场景落地。本文深入解析Skill设计四重契约与P

weixin_31124163的博客 376

ComfyUI-Impact-Subpack插件安装避坑指南:为什么你的UltralyticsDetectorProvider节点还是找不到?

本文深入解析了ComfyUI-Impact-Subpack插件的安装与排障问题,特别是针对UltralyticsDetectorProvider节点缺失的常见问题提供了详细的解决方案。从底层机制到高阶应用,涵盖了手动安装、模型配置、性能优化等关键步骤,帮助用户彻底解决插件依赖关系断裂问题。

Jerry的专栏 1152

xml详解

一、xml基础详解: 1、概述: xml:即可扩展标记语言,xml是互联网数据传输的重要工具,它可以跨越互联网任何的平台,不受编程语言和操作系统的限制,可以说它是一个拥有互联网最高级别通行证的数据携带者。xml是当前处理结构化文档信息中相当给力的技术,xml有助于在服务器之间穿梭结构化数据,这使得开发人员更加得心应手的控制数据的存储和传输。 Xml用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。Xml是标准通用标记语言(...

technologyleader的专栏 8721

1.4 你绝对不能错过的天气查询工具:MCP 标准化接入实战

本文介绍了如何构建一个符合MCP标准的天气查询服务。通过FastMCP框架集成OpenWeatherMap API,实现实时天气、天气预报和历史天气查询功能。文章详细展示了从环境准备、插件设计到控制器实现的完整流程,包括如何定义工具函数、配置路由和中间件。同时讲解了如何将MCP服务封装为LangChain工具并与DeepSeek等大模型集成,还涵盖了缓存、限流等高级特性。该示例演示了如何将任意API标准化为MCP服务,为Agent应用提供统一接口。

yonggeit的博客 3046

XML详解

可扩展标记语言(Extensible Markup Language),标准通用标记语言的子集,简称XML。是一种用于标记电子文件使其具有结构性的标记语言。 在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。是Internet环境中跨平台的、依赖于内容的技术,也是当今处理分布式结构信息

顺其自然~专栏 2万+

ardupilot SBUS输入捕获

本节主要记录ardupilot 的sbus 输入捕获功能。ardupilot 默认支持多种无线协议控制输入设备,比如常用的PPM,SBUS,IBUS,DSM,SUMD,SRXL等协议,本节主要讲解ardupilot 如何通过定时器的pwm输入捕获来获取sbus数据。

陌城烟雨 269

古月学院《如何在Gazebo中实现阿克曼转向车的仿真》课程资料在ROS Noetic版本中运行时的常见错误及解决方法

   最近想在Gazebo中开发一些仿真内容,于是购买了古月学院的《如何在Gazebo中实现阿克曼转向车的仿真》课程,但是由于ROS 版本的更新,拿到手的课程资料不能直接在ROS Noetic版本中运行,经过我这几天的探索,对遇到的错误及解决方法进行了整理,方便后面购买课程的小伙伴更快的成功运行程序    在文章正式开始之前,先放一下我之前为了寻找该资料报错的原因,而写的两篇与该课程相关的文章链接,感兴趣的可以自行阅读    以阿克曼转向车为例对URDF和XACRO文件进行解读(点击可跳转)    将x

慕羽★的博客 5974

XML的课堂笔记

什么是 XML? XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输数据,而非显示数据 XML 标签没有被预定义。您需要自行定义标签。 XML 被设计为具有自我描述性。

w183705952的专栏 417

Transformers 实战修炼与源码剖析专栏大纲

本专栏以 Hugging Face Transformers 为主线,围绕“能用、会调、敢上线、懂源码”四个目标展开。内容不把理论堆成公式墙,而是用真实或拟真的业务场景驱动:客服分类、合同抽取、知识库问答、模型微调、推理服务、监控告警、源码扩展等。采用“业务痛点 → 三人剧本对话 → 代码实战 → 总结思考”的四段式结构,让读者在动手完成一个个小项目的过程中,逐步理解 Tokenizer、Model、Pipeline、Trainer、Generation、PEFT、Accelerate、Serving等概念

davidwang456的专栏 921

如何使用YOLOv8训练课堂行为动作识别数据集 课堂行为动作识别数据集 一共8884张图片 xml .txt格式都有 Yolo可直接训练 已跑通 动作类别一共8类

如何使用YOLOv8训练课堂行为动作识别数据集 课堂行为动作识别数据集 一共8884张图片 xml .txt格式都有 Yolo可直接训练 已跑通 动作类别一共8类 实现可视化和评估

QQ_1309399183的博客 1722

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

基于深度学习的学生课堂抬头率检测系统

基于深度学习的学生课堂抬头率检测系统

xuehaisj的博客 6039

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

python解析xml_Python小课堂XML 解析

Python3 XML 解析一、什么是 XML?XML 指可扩展标记语言(eXtensible Markup Language),标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。你可以通过本站学习 XML 教程XML 被设计用来传输和存储数据。XML 是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。它也是元标记语言,即定义了用于定义其他与...

weixin_35498756的博客 236

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

php从入门到精通视频教程配套笔记,传智播客_韩顺平_php从入门到精通149讲(视频教程配套笔记)...

0讲 PHP开山篇1讲 html介绍 html运行原理①2讲 html运行原理② html文件基本结构 html元素和属性3讲 符号实体 url说明 超链接 发送电邮4讲 图像 表格 实际应用-菜谱 课堂练习-课程表5讲 无序列表 有序列表 框架6讲 浮动窗口 表单及表单控件①7讲 表单及表单控件②8讲 多媒体页面 标签汇总① 地图映射9讲 多标签汇总② 线包字效果 测试题10讲 div+css开...

weixin_36099799的博客 338

2020年XML课堂笔记

XML 1. XML简介 概念:可扩展标记语言 可扩展:标签都是程序员自定义 功能:存储数据,作为配置文件,在网络中传输数据 注意:properties文件只能存储小配置文件 xml与html区别 xml标签都是自定义,html标签都是预定义 xml的语法严格,html语法松散 xml是用来存储数据,html是用来展示数据 基本语法 xml文档的后缀名.xml xml第一行必须定义为...

qq_45873896的博客 231

课堂知识总结

VOC数据集:PASCAL VOC挑战赛(The PASCAL Visual Object Classes)是一个世界级的计算机视觉挑战赛。(Xmin, Ymin, W, H),其中x,y,w,h均不是归一化后的数值,分别代表左上角坐标和宽、高。经典发展线:R-CNN、SPP-Net、Fast R-CNN、 Faster R-CNN。(Xmin,Ymin,Xmax,Ymax)分别代表左上角和右下角的两个坐标。候选框列表中的所有框依次与A计算IoU,删除大于阈值的候选框。

2401_82552436的博客 342

0330课堂学习通过 XML来对Jetty进行配置

0330课堂学习通过 XML来对Jetty进行配置 准备工作: 打开IDRA软件 在自己的分支下pull远程代码更新分支 开始任务: 3个web容器:Tomcat、jetty、undertow(本次使用的是jetty) 进入mvnrepository.com搜索jetty-maven-plugin (jetty插件)点击进入,如果要用Tomcat则搜索tomcat进入 由于我建的是m...

qq_41632036的博客 308

【人工智能】基于深度学习的课堂考场玩手机检测

课堂手机检测系统,主要应用于教育领域。通过自制数据集和深度学习算法(结合CNN与YOLO),实现对课堂上使用手机行为的自动化检测与分类。数据集的构建过程包括数据采集、清洗、标注和预处理,确保数据的多样性和准确性。在算法模型方面,采用CNN-YOLO作为基础框架,通过引入特征提取和实时检测技术,提升了检测精度和速度。该系统的实施不仅提高了课堂管理的效率,也为智能教育提供了有效的技术支持。

机器学习,深度学习,计算机视觉爱好者,整理分享技术资料与项目案例。 1817

零XML配置启动springmvc项目

SpringMvc学习笔记 记得刚开始写springmvc项目时候,一个新手面对那些配置真的很头痛。想要去深入学习一下不知道如何下手。先抛开那些概念,我们来写一个没有配置的springmvc项目(springmvc没有配置也能启动吗?) 1:Servlet启动流程 我们先来自己来写一个案例,我们定义SpringServletContainerInitializer类,让这个类实现ServletCo...

mnicsm的博客 607

【精选】基于深度学习的学生课堂抬头率检测系统

【精选】基于深度学习的学生课堂抬头率检测系统

cheng2333333的博客 2347

xml 纯内容标签_Python小课堂XML 解析

Python3 XML 解析一、什么是 XML?XML 指可扩展标记语言(eXtensible Markup Language),标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。你可以通过本站学习 XML 教程XML 被设计用来传输和存储数据。XML 是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。它也是元标记语言,即定义了用于定义其他与...

weixin_39715997的博客 86
上一篇: YAML 知识小课堂
下一篇: CSV 知识小课堂:从入门到精通,一文吃透逗号分隔值
bugcome_com
博客等级 码龄3年 32粉丝 131原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bugcome_com

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值