当前位置: 首页 > news >正文

介绍XML

XML(Extensible Markup Language,可扩展标记语言)是一种用于存储、传输和交换数据的标记语言,由万维网联盟(W3C)在1998年制定。它通过自定义标签描述数据结构,具有平台无关性、自描述性和结构化的特点,常用于配置文件、数据交互和文档存储等场景。

一、XML的核心特点

  1. 自定义标签
    XML标签不像HTML(预定义标签,如<div><p>),而是允许用户根据需求自定义标签(如<book><price>),标签需成对出现(开始标签和结束标签),例如:

    <book><title>XML入门</title><author>张三</author>
    </book>
    
  2. 严格的语法规则

    • 标签必须正确嵌套、闭合,且区分大小写。
    • 文档必须有一个根元素(唯一的顶级标签)。
    • 属性值必须用引号包裹(单引号或双引号)。
  3. 自描述性
    标签和属性直接描述数据含义,可读性强,例如:

    <user id="1001"><name>Alice</name><email>alice@example.com</email>
    </user>
    
  4. 平台无关性
    不依赖特定编程语言或操作系统,可在不同系统间交换数据。

二、XML的基本结构

一个标准的XML文档包含以下部分:

  1. 声明(可选)
    用于指定XML版本和编码(如UTF-8),例如:

    <?xml version="1.0" encoding="UTF-8"?>
    
  2. 元素(标签)
    由开始标签、内容和结束标签组成,可嵌套其他元素或文本:

    <root><child>内容</child><child attribute="">带属性的元素</child>
    </root>
    
  3. 属性
    用于描述元素的额外信息,需附加在开始标签中,格式为属性名="属性值"

    <product id="001" category="book">XML教程</product>
    
  4. 注释
    语法为<!-- 注释内容 -->,用于解释文档结构:

    <!-- 这是一个注释 -->
    

三、XML的常见用途

  1. 数据存储与配置

    • 作为配置文件(如Java的web.xml、Android的strings.xml)。
    • 存储结构化数据(如电子书、日志文件)。
  2. 数据交换

    • 早期Web服务(SOAP协议)通过XML传输数据。
    • 不同系统间的数据交互(如企业系统集成)。
  3. 文档标记

    • 用于学术论文、法律文档等需要复杂结构的场景(如DocBook格式基于XML)。

四、XML vs JSON

特性XMLJSON
语法标签驱动,结构复杂键值对驱动,简洁轻量
可读性较好(标签自描述)较好(简洁格式)
解析效率较慢(需处理标签嵌套)较快(键值对映射简单)
体积较大(标签重复书写)较小(无冗余标签)
主流场景传统企业系统、配置文件Web API、移动端数据交互

五、XML解析方式(前端JS中)

在浏览器中,可通过DOMParserXMLHttpRequest解析XML数据:

  1. 解析XML字符串

    const xmlString = `<?xml version="1.0"?>
    <users><user id="1">Alice</user><user id="2">Bob</user>
    </users>`;const parser = new DOMParser();
    const xmlDoc = parser.parseFromString(xmlString, "application/xml");
    const users = xmlDoc.getElementsByTagName("user");
    for (const user of users) {console.log(user.getAttribute("id"), user.textContent);
    }
    
  2. 通过XHR获取XML

    const xhr = new XMLHttpRequest();
    xhr.open("GET", "data.xml", true);
    xhr.onreadystatechange = function() {if (xhr.readyState === 4 && xhr.status === 200) {const xmlDoc = xhr.responseXML;// 解析xmlDoc}
    };
    xhr.send();
    

六、XML的优缺点

  • 优点
    • 结构严谨,适合复杂数据建模。
    • 支持命名空间(Namespace)和模式定义(XSD、DTD),便于规范数据格式。
  • 缺点
    • 语法冗长,书写和解析效率较低。
    • 数据类型支持有限(默认均为字符串),需额外定义。

总结

XML是一种灵活的结构化数据格式,通过自定义标签描述数据,适用于需要严格规范和跨平台交互的场景。尽管现代Web开发中JSON更流行,但XML在传统企业系统、配置文件和特定领域(如SVG、XHTML)中仍有重要作用。理解XML的核心语法和用途,有助于掌握早期Web技术和数据交换的基础知识。

相关文章:

  • 蓝桥杯 18.分考场
  • 室外摄像头异常自检指南+视频监控系统EasyCVR视频质量诊断黑科技
  • 如何平衡质量与进度的矛盾
  • L1-105 珍惜生命 - java
  • 安卓逆向工程:从APK到内核的层级技术解析
  • 使用json_repair修复大模型的json输出错误
  • 深入探索Qt异步编程--从信号槽到Future
  • 图形编辑器基于Paper.js教程27:对图像描摹的功能实现,以及参数调整
  • GPT-4.1 开启智能时代新纪元
  • OSPF数据包及工作过程
  • PaginationInnerInterceptor使用(Mybatis-plus分页)
  • 基于遗传算法的智能组卷系统设计与实现(springboot+ssm+React+mysql)含万字详细文档
  • 【项目管理】成本类计算 笔记
  • 基于 DeepSeek大模型 开发AI应用的理论和实战书籍推荐,涵盖基础理论、模型架构、实战技巧及对比分析,并附表格总结
  • 在ARM Linux应用层下驱动MFRC522
  • vue项目中使用antvX6(可拖拽,vue3)
  • 【Vue】组件基础
  • 浙江大学 DeepSeek 公开课 第三季 第1期讲座 - 唐谈 研究员 (附PPT下载) | 突破信息差
  • 【Linux网络】构建UDP服务器与字典翻译系统
  • 基于LangChain与Neo4j构建企业关系图谱的金融风控实施方案,结合工商数据、供应链记录及舆情数据,实现隐性关联识别与动态风险评估
  • 宇树的任务已经完成?王兴兴也在等待行业拐点
  • 临清农商行回应监管处罚:系2023年问题,已经进行了整改
  • 2025年度“沪惠保”将于4月22日开售,保费不变
  • 官方披露:WinRAR安全漏洞可绕过安全警告,执行恶意软件
  • 深化应用型人才培养,这所高校聘任行业企业专家深度参与专业设置
  • “棉花糖爸爸”陈生梨:女儿将落户到贵州纳雍