【XML入门精要】从零开始的开发之旅

参考文档:XML 教程 (w3school.com.cn)

简介

XML,全称eXtensible Markup Language,即“可扩展标记语言”,是一种用于存储和传输数据的标准格式。它由万维网联盟(W3C)开发,目的是克服HTML(HyperText Markup Language)在表示数据结构和语义上的局限性,提供一种更灵活、更强大的数据描述方式。

为什么需要XML

  1. 两个程序间进行数据通信
  2. 给一台服务器,做一个配置文件,当服务器程序启动时,去读取它应当监听的端 口号、还有连接数据库的用户名和密码
  3. spring 中的 ico 配置文件,beans.xml mybatis XXXMapper.xml tomcat server.xml web.xml mavenpom.xml
  4. 能存储复杂的数据关系

XML技术用于解决什么问题

  • 解决程序间数据传输的问题:=>json

    • 比如qq之间的数据传送,用xml格式来传送数据,具有良好的可读性,可维护性。
  • xml可以做配置文件

    • xml文件做配置文件可以说非常的普遍,比如我们的tomcat服务器的server.xml,web.xml
  • xml可以充当小型的数据库=>程序自己的数据格式存放

    • xml文件做小型数据库,也是不错的选择,我们程序中可能用到的数据,如果放在数据库 中读取不合适(因为你要增加维护数据库工作),可以考虑直接用xm来做小型数据库,而且 直接读取文件显然要比读取数据库快

XML语法

  1. 文档组成

    1. 文档声明

      1. <?xml version="1.0" encoding="utf-8"?>
    2. 元素

      1. 每个XML文档必须有且只有一个根元素。 

      2. 根元素是一个完全包括文档中其他所有元素的元素。 

      3. 根元素的起始标记要放在所有其他元素的起始标记之前。 

      4. 根元素的结束标记要放在所有其他元素的结束标记之后。

      5. 代码示例:

        <?xml version="1.0" encoding="utf-8" ?>
        <!--
        解读
        1. 每个XML文档必须有且只有一个根元素。
        2. 根元素是一个完全包括文档中其他所有元素的元素。
        3. 根元素的起始标记要放在所有其他元素的起始标记之前。
        4. 根元素的结束标记要放在所有其他元素的结束标记之后。
        5. XML 元素指XML文件中出现的标签,一个标签分为开始标签和结束标签,一
        包含标签体:<a>www.sohu.com</a>
        不含标签体的:<a></a>, 简写为:<a/>
        6. 一个标签中也可以嵌套若干子标签。但所有标签必须合理的嵌套,绝对不允许
        交叉嵌套。
        7. 叫法student 元素,节点,标签 -->
        <students><student id="100"><name>jack</name><age>10</age><gender></gender></student><student id="200"><name>mary</name><age>18</age><gender></gender></student><school>清华大学</school><city/>
        </students>
        
    3. 属性

      1. 属性介绍

        1. <StudentID=“100”>
          TOM
      2. 属性值用双引号(“)或单引号(‘)分隔(如果属性值中有’,用"分隔;有”,用’分隔)

      3. 一个元素可以有多个属性,它的基本格式为:<元素名属性名=“属性值”>

      4. 特定的属性名称在同一个元素标记中只能出现一次

      5. .属性值不能包括&字符

      6. 代码示例:

        <?xml version="1.0" encoding="utf-8" ?>
        <!--
        解读
        1. 属性值用双引号(")或单引号(')分隔(如果属性值中有',用"分隔;有",
        用'分隔)。
        2. 一个元素可以有多个属性,它的基本格式为:<元素名 属性名="属性值">3. 特定的属性名称在同一个元素标记中只能出现一次。
        4. 属性值不能包括&字符。-->
        <students><!--举例:id='01' 也是正确写法如果属性值有" 则使用' 包括属性 比如 id="xxx'yyy"如果属性值有' 则使用" 包括属性 比如 id='xxx"yyy'属性名在同一个元素标记只能出现一次 <student id="01" id="03"> 是错误的属性值不能包括&字符比如:<student id="0&1"> 是错误的--><student id="100"><name>jack</name><age>10</age><gender></gender></student><student id="200"><name>mary</name><age>18</age><gender></gender></student>
        </students>
        
    4. 注释

      1. 注释内容中不要出现–
      2. 不要把注释放在标记中间;错误写法<Name >TOM
    5. CDATA区

      1. 含义

        1. 有些内容不想让解析引擎执行,而是当作原始内容处理(即当做普通文本),可 以使用CDATA包括起来,CDATA节中的所有字符都会被当作简单文本,而不是XML标记。
      2. 语法

        1. <![CDATA[ 这里可以把你输入的字符原样显示,不会解析 xml ]]>

转义字符

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/49864.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【网络流】——初识(最大流)

网络流-最大流 基础信息引入一些概念基本性质 最大流定义 Ford–Fulkerson 增广Edmons−Karp算法Dinic 算法参考文献 基础信息 引入 假定现在有一个无限放水的自来水厂和一个无限收水的小区&#xff0c;他们之间有多条水管和一些节点构成。 每一条水管有三个属性&#xff1a…

如何查看cpu架构,查看CPU架构的方法

查看CPU架构的方法有很多&#xff0c;具体取决于你使用的操作系统。以下是一些常见的操作系统中查看CPU架构的方法&#xff1a; Windows查看CPU架构的方法 使用系统信息工具 按 Win R 打开运行窗口。输入 msinfo32 并按 Enter。在系统信息窗口中&#xff0c;找到“处理器”一…

懂个锤子Vue 项目工程化进阶⏫:

Vue项目工程化进阶⏫&#xff1a; 前言&#xff1a; 紧跟前文&#xff0c;目标学习Vue2.0——3.0&#xff1a; 懂个锤子Vue、WebPack5.0、WebPack高级进阶 涉及的技术栈… 当然既然学习框架的了&#xff0c;HTMLCSSJS三件套必须的就不说了&#xff1a; JavaScript 快速入门 …

7-25学习笔记

一、锁对象 Lock接口 1、创建锁对象 ReentrantLock类 Lock locknew ReentrantLock(true); 默认创建的是非公平锁 在创建锁对象时传入一个true参数 便会创建公平锁 先来后到 是重入锁 排他锁 加锁后不允许其它线程进入 2、加锁、解锁 &#xff08;1&#xff09;loc…

Redis-数据的极速之旅(一)

Redis基础篇 Redis的自我介绍我的核心数据结构1.字符串&#xff08;String&#xff09;2.哈希&#xff08;Hash&#xff09;3.列表&#xff08;List&#xff09;4.集合&#xff08;Set&#xff09;5.有序集合&#xff08;Sorted Set&#xff09; 高性能原理1.Redis为什么快&…

B端系统UI个性化设计:感受定制之美

B端系统UI个性化设计&#xff1a;感受定制之美 引言 艾斯视觉作为ui设计和前端开发从业者&#xff0c;其观点始终认为&#xff1a;在当今竞争激烈的商业环境中&#xff0c;B端&#xff08;Business-to-Business&#xff09;系统的设计不再仅仅是功能性的堆砌&#xff0c;而是…

书生大模型实战营--L1关卡-OpenCompass 评测 InternLM-1.8B 实践

一、使用 OpenCompass 评测 internlm2-chat-1.8b 模型在 MMLU 数据集上的性能 1、使用lmdeploy部署 internlm2-chat-1.8b模型 2、根据OpenCompass官网教程安装并下载数据集 opencompass/README_zh-CN.md at main open-compass/opencompass GitHub 注意&#xff1a; pyhton…

JAVAWeb实战(前端篇)

项目实战一 0.项目结构 1.创建vue3项目&#xff0c;并导入所需的依赖 npm install vue-router npm install axios npm install pinia npm install vue 2.定义路由&#xff0c;axios&#xff0c;pinia相关的对象 文件&#xff08;.js&#xff09; 2.1路由(.js) import {cre…

当全球银行系统“崩溃”时会发生什么?

有句名言&#xff1a;“当美国打喷嚏时&#xff0c;世界就会感冒……”换句话说&#xff0c;当人们对美国及其经济稳定性的信心下降时&#xff0c;其他经济体&#xff08;以及黄金、白银和股票等资产&#xff09;的价值往往会下降。 与任何其他资产类别一样&#xff0c;加密货…

超详细-数据结构-二叉树概念及结构,堆的概念及结构以及堆的代码的c语言实现

本篇博客将详细讲述二叉树的概念&#xff0c;堆的概念及结构以及堆的代码实现&#xff0c;以及二叉树&#xff0c;堆的相关应用。Top K 问题&#xff0c;堆排序的实现以及二叉树链式结构的实现将在之后的博客更新。你可在目录中找到你想重点阅读的内容。堆的完整代码实现在文章…

【秋招笔试题】方程

解析&#xff1a;暴力枚举。建议用Python的eval函数,C手写略麻烦。 #include <iostream> #include <string> #include <vector> #include <sstream>using namespace std;long long stringResult(const string &expr) {vector<string> plusP…

visual studio性能探测器使用案列

visual studio性能探测器使用案列 在visual studio中&#xff0c;我们可以使用自带的工具对项目进行性能探测&#xff0c;具体如下 1.选择性能探查器 Vs2022/Vs2019中打开方式&#xff1a; Vs2017打开方式&#xff1a; 注意最好将解决方案配置为&#xff1a;Release Debu…

昇思25天学习打卡营第22天|CycleGAN图像风格迁移互换

相关知识 CycleGAN 循环生成网络&#xff0c;实现了在没有配对示例的情况下将图像从源域X转换到目标域Y的方法&#xff0c;应用于域迁移&#xff0c;也就是图像风格迁移。上章介绍了可以完成图像翻译任务的Pix2Pix&#xff0c;但是Pix2Pix的数据必须是成对的。CycleGAN中只需…

如何获得某个Window画面所属包名packageName和用户userId

在安卓上获得某个Window画面所属包名packageName和用户userId的方法 1&#xff0c;用到的工具如下&#xff1a; adb androidSDK里的monitor工具 adb shell dumpsys window animator adb shell dumpsys window命令 jdk 1.8已在安卓14模拟器上测试通过。 以AOSP的launcher中的m…

【.NET 6 实战--孢子记账--从单体到微服务】--开发环境设置

在这一小节&#xff0c;我们将设置开发环境。 一、安装SDK 咱们的项目使用的是 .NET6&#xff0c;开发前我们需要从官网上下载.NET6 SDK&#xff08;点击下载&#xff09;&#xff0c;这里要注意的是我们需要下载.NET6 SDK&#xff0c;而不是 .NET6 Runtiem 。SDK 包含 Runti…

C++静态成员变量和静态成员函数

演示代码如下&#xff1a; #include<iostream> using namespace std;class Person { public://静态成员函数 所有对象共享一个函数&#xff0c;且只能调用静态成员变量 ******static void func(){m_A 300;cout << "静态成员函数调用" << endl;}/…

【MySQL进阶之路 | 高级篇】简述Bin Log日志

1. 日志类型 MySQL有不同类型的日志文件&#xff0c;用来存储不同类型的日志&#xff0c;分为二进制日志、错误日志、通用查询日志和慢查询日志&#xff0c;这也是常用的4种。MySQL 8又新增两种支持的日志:中继日志和数据定义语句日志。使用这些日志文件&#xff0c;可以查看M…

openFeign实现服务间调用

以两个模块&#xff08;batch&#xff0c;business&#xff09;为例子&#xff0c;期望实现batch调用business中的hello接口 在主程序batch中引入pom文件 <!--远程调用openfeign--><dependency><groupId>org.springframework.cloud</groupId><arti…

Linux网络工具“瑞士军刀“集合

一、背景 平常我们在进行Linux服务器相关运维的时候&#xff0c;总会遇到一些网络相关的问题。我们可以借助这些小巧、功能强悍的工具帮助我们排查问题、解决问题。 下面结合之前的一些使用经验为大家介绍一下一些经典应用场景下&#xff0c;这个网络命令工具如何使用的。例如怎…

游泳馆押金原路退回源码解析

<dl class"list "><dd class"address-wrapper dd-padding"><div class"address-container"><cyberdiv style"color:#f0efed;font-size:14px;float:right;position:absolute;right:10px;top: 2px;">●●●<…