介绍XML

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

一、XML的核心特点

  1. 自定义标签

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

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

    • 标签必须正确嵌套、闭合,且区分大小写。
    • 文档必须有一个根元素(唯一的顶级标签)。
    • 属性值必须用引号包裹(单引号或双引号)。
  3. 自描述性

    标签和属性直接描述数据含义,可读性强,例如:

    xml 复制代码
    <user id="1001">
      <name>Alice</name>
      <email>[email protected]</email>
    </user>
  4. 平台无关性

    不依赖特定编程语言或操作系统,可在不同系统间交换数据。

二、XML的基本结构

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

  1. 声明(可选)

    用于指定XML版本和编码(如UTF-8),例如:

    xml 复制代码
    <?xml version="1.0" encoding="UTF-8"?>
  2. 元素(标签)

    由开始标签、内容和结束标签组成,可嵌套其他元素或文本:

    xml 复制代码
    <root>
      <child>内容</child>
      <child attribute="值">带属性的元素</child>
    </root>
  3. 属性

    用于描述元素的额外信息,需附加在开始标签中,格式为属性名="属性值"

    xml 复制代码
    <product id="001" category="book">XML教程</product>
  4. 注释

    语法为<!-- 注释内容 -->,用于解释文档结构:

    xml 复制代码
    <!-- 这是一个注释 -->

三、XML的常见用途

  1. 数据存储与配置

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

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

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

四、XML vs JSON

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

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

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

  1. 解析XML字符串

    javascript 复制代码
    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

    javascript 复制代码
    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技术和数据交换的基础知识。

相关推荐
武子康2 天前
Java-39 深入浅出 Spring - AOP切面增强 核心概念 通知类型 XML+注解方式 附代码
xml·java·大数据·开发语言·后端·spring
Ll13045252984 天前
基于 COM 的 XML 解析技术(MSXML) 的总结
xml
在代码的海洋中寻找亚特兰蒂斯4 天前
AJAX对于XML和JSON的处理
xml·ajax·json
BinField6 天前
ToolsSet之:XML工具
xml·windows·microsoft
SEO-狼术6 天前
Connect Directly to Oracle XML Data
xml·数据库·oracle
YSoup6 天前
2025年目前最新版本Android Studio自定义xml预览的屏幕分辨率
android·xml·android studio
abcnull8 天前
mybatis的mapper对应的xml写法
xml·sql·spring·mybatis·mapper
Blue桃之夭夭8 天前
HTML、XML、JSON 是什么?有什么区别?又是做什么的?
xml·html·json
小于村8 天前
pom.xml 文件中配置你项目中的外部 jar 包打包方式
xml·java·jar
扶风呀8 天前
pom.xml中标签详解_
xml