XML的内容

article/2025/10/12 1:35:37

XML简介:
在这里插入图片描述
XML是跨平台的语言,它不需要安装任何环境的语言,
它是所有语言所共有的,单独的语言,并且不是所有语言内部的。
它是让所有语言去和xml交互 。
注意: html前身是xml

<></>(整体)这就是标记(标签)
注意点: 标签可以随便写(自定义不会报错),所以叫可扩展。
==》不像Java 很严格。

< head> </ head >标记语言

注意点: 自定义的标签也不会报错

1.XML定义:
可扩展标记语言(1.标记 2.可扩展)
Extensible Markup Language

2.特点:
1.1 XML于操作系统、开发平台无关
1.2 实现不同系统间的数据交换

3.作用:
1.1 数据交互
1.2 配置应用程序
1.3 Ajax基石(基于XML)

4.文档结构
1.1创建XML
创建一个文档后缀名为xml,
(xml大小写没有严格的区分,Java有)
然后打开,把第一句话写上去,这样才算是xml,不然不是。

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

1.2查询/编辑(Design/Source)

1.3工程里创建xml
右击—New—other—XML File

注意点:
Java去解析xml的代码,但没有工具。
xml代码只有编译测试,没有运行测试。

1.4内容介绍:
<?xml version="1.0" encoding="UTF-8"?> --》 声明
如下的都是 --》文档元素描述信息(文档结构)

<books>
<books/>
<!--  -->//注释<books id="1"><author>冰心</author><name>爱情</name></books>
</books>

注意点:
xml在eclipse运行不了 ,有波浪线不代表报错,
只是eclipse认为错,但Java可以。

5.文档标签
一层一层嵌套是父子关系,必须要有父亲(根节点)。

1.1 XML标签
XML文档内容有一系列标签元素组成
<元素名 属性名 = “属性值”>元素内容</元素名>

注意点:
属性值最好需要配值 没有取值 会编译报错 但没事 不算错
和Java不一样,但最好有值,因为可以对应匹配。

空元素:
(常见第二种)

<name> </name>
<name></name> 
<name/>

注意点:
1.属性值用双引号包裹(单引号也可以 但不建议)
2.一个元素可以有多个属性
3.属性值中不能直接包含 <、“、&
4.属性值中不建议使用的字符:‘ 、>

6.XML编写注意事项

  1. 所有XML元素都必须有结束标签
  2. XML标签对大小写敏感
  3. XML必须正确的嵌套
  4. 同级标签以缩进对齐 (没有缩进是不标准的xml,但不是错的)
  5. 元素名称可以包含字母、数字或其他的字符
  6. 元素名称不能以数字或者标点符号开始
  7. 元素名称中不能含空格 (建议用英文)

7. 转义符

<     &lt;
>     &gt;

给我们看的 并不是真正的大于小于

&quot;
&apos;
&     &amp;

–》 一般是在属性值上使用

<![CDATA[     ]]>  -- 》 一般是在两个标签中间使用   (文本)

8. 案例实现
1.1 案例1:将如下衣服的尺码信息,使用XML文件保存

<?xml version="1.0" encoding="UTF-8"?>
<!-- 将如下衣服的尺码信息,使用XML文件保存 -->
<clothSize><size range="height&lt;165">s</size><size range="165&lt;height&lt;170">M</size><size range="170&lt;height&lt;175">L</size><size range="175&lt;height&lt;180">XL</size><size range="180&lt;height&lt;185">XXL</size><size range="height&gt;185">XXXL</size>
</clothSize>

在这里插入图片描述
1.2 案例2:编写XML表示学生成绩

<?xml version="1.0" encoding="UTF-8"?>
<studentScores><studnent name = "xz" expectedScore = "75" 
actualScore = "80"></studnent><studnent name = "xl" expectedScore = "75" 
actualScore = "88"></studnent><!-- 上面不推荐 下面推荐 --><student><name>xz</name><expectedScore>75</expectedScore><actualScore>80</actualScore></student><student><name>xl</name><expectedScore>75</expectedScore><actualScore>88</actualScore></student>
</studentScores>

在这里插入图片描述
9.解析XML

9.1 DOM
特点: 把文档解析成文档树

9.2 SAX(不常用)

9.3 DOM4J(常用)解析案例 (常用)
特点: 将DOM解析进行了一次封装

9.3.0常用API

Document接口: 定义XML文档

Element接口: 定义XML元素

Text接口: 定义XML本文节点

Attribute接口: 定义XML属性

9.3.1准备环境
(1)前提(准备物料dom4j-1.6.1.jar包)
将工程所有设置配置成utf-8,并导入jar包,并手工创建XML文件
在这里插入图片描述

  1. 在工程里创建一个lib-Folder
  2. 从外部导入dom4j-1.6.1.jar包
  3. 然后右击Build Path- Add to Build Path
    生成本工程的一个引用库下的包(外部类库)
    在这里插入图片描述
  4. 创建Dem4jXMLjava文件

9.3.2 加载DOM树

  1. 写个loadXML方法
/*** 1.加载DOM树*/Document doc = null;// 全局 变量public void loadXML() {//1.实例化SAXReader对象(读取)SAXReader saxReader = new SAXReader();
//import org.dom4j.io.SAXReader; 导包try {//引入read方法,去读取xmldoc = saxReader.read("src\\A.xml")
//import org.dom4j.Document; 导包	
//import org.dom4j.DocumentException; 导包	System.out.println(doc);//测试有没有这个xml//加载xml成功,能打印出来,就能加载到我们的工程里} catch (DocumentException e) {e.printStackTrace();}}

结果:
xxx.xxx.xxx.DefaultDocument@1fb3ebeb [Document: name src\A.xml]

1.main方法

public static void main(String[] args) {Dem4jXML dem4jXML = new Dem4jXML();dem4jXML.loadXML();
//dem4jXML.addXML();
//dem4jXML.updateXML();dem4jXML.delete();dem4jXML.findXML();}

题外话:
查看saxReader.read的源码,
需要导包dom4j_src (关联源码),
但有没有这个不影响重要的是jar包。
attach Source – External location – External Folder
在这里插入图片描述
在这里插入图片描述

9.3.3 需求1(显示手机收藏信息)

/*** 2.查询XML*/public void findXML() {//Dem4jXML特有的Iterator//1.调用getRootElement()获取根元素Element root = doc.getRootElement();
//import org.dom4j.Element;导包//2.遍历儿子元素的集合Iterator brandInfos = root.elementIterator();
//import java.util.Iterator; 导包while(brandInfos.hasNext()) {//3.获取儿子元素Element brandInfo = (Element)brandInfos.next();System.out.println(brandInfo.attributeValue("name"));//得儿子元素节点的name属性值//4.遍历孙子元素(获取孙子节点对象)Iterator types = brandInfo.elementIterator();while(types.hasNext()) {	 //获取孙子元素节点Element type = (Element)types.next();System.out.println(type.attributeValue("name"));}}}

结果:
华为
Mate50 pro
p50 pro
nova 6
苹果
iphone12 pro

9.3.4 需求2(为手机收藏信息添加新的节点)

/*** 3.添加节点*/public void addXML() { //1.获取根元素Element root = doc.getRootElement();//2.添加儿子元素Element brandInfo = root.addElement("Brand");//3.给儿子元素添加name属性brandInfo.addAttribute("name", "三星");//4.添加孙子节点Element type = brandInfo.addElement("Type");//5.给孙子元素添加name属性type.addAttribute("name", "note8 pro");//以上添加节点在xml显示不出来,所以才有了方法saveXML//6.保存(数据)到新的xml中saveXML("src\\b.xml");//调用saveXML方法}

9.3.5 需求3(保存手机收藏信息写出到xml文件)

/*** 4.保存到XML*/
public void saveXML(String path) {//1.调用OutputFormat类的createPrettyPrint()OutputFormat format = OutputFormat.createPrettyPrint();
//对获取的内容格式化一下 比如输出的 样式 以及字符集
//import org.dom4j.io.OutputFormat;   导包//2.设置字符集format.setEncoding("utf-8");//3.创建输出对象XMLWriter writer = null;
//import org.dom4j.io.XMLWriter; 导包 //4.调用对象try {writer = new XMLWriter(new FileWriter(path),format);//字节输出流   设置字符集
//XMLWriter 依赖于 FileWriter写出的 本身没有自己的写出方法//第二个 format一样的解释 XMLWriter  没有自己的格式化方法
//import java.io.FileWriter; 导包//5.输出给文件(写出数据)writer.write(doc);		
//import java.io.IOException; 导包	} catch (IOException e) {e.printStackTrace();} finally {try {//6.关闭writer流对象writer.close();} catch (IOException e) {e.printStackTrace();}}}

注意点:
1.要刷新(在工程下) Refresh
2.最好全是UTF-8 或者GBK,要统一(xml文件和工程),不然会有乱码
3.java机制 先编译后运行

9.3.5 需求4(修改手机收藏信息节点)

/*** 5.修改XML(修改要把增加屏蔽掉)*/public void updateXML() {//1.获取根元素Element root = doc.getRootElement();//2.获取儿子元素的集合Iterator brandInfos = root.elementIterator();//3.定义变量idint id = 0;//4.循环遍历儿子元素集合while(brandInfos.hasNext()){Element brand = (Element)brandInfos.next();id++;brand.addAttribute("id", id+"");}saveXML("src\\c.xml");}

9.3.6 需求5(删除品牌为“苹果”的手机)

/**
* 删除节点(屏蔽掉添加和修改)
*/public void delete() {//1.获取根元素Element root = doc.getRootElement();//2.获取儿子元素的集合Iterator brandInfos =root.elementIterator();//3.遍历儿子元素集合while(brandInfos.hasNext()) {//4.获取儿子元素Element brand = (Element)brandInfos.next();if(brand.attributeValue("name").equals("苹果")) {brand.getParent().remove(brand);}//getParent() 获取父节点// 判断儿子节点的名称是苹果,则删除对应的父子节点}saveXML("src\\d.xml");//刷新本工程才能出来}

题外话
mysql -uroot -pok
-u的含义是 ----->user用户的意思
使用root超级用户管理员的身份
-p的含义是-------->password的意思
使用ok作为本机mysql数据库的密码
在这里插入图片描述
虚拟机
mysql -h 虚拟机的ip地址 -uroot -pok

----2021.8.31&9.01&9.02


http://chatgpt.dhexx.cn/article/Bok13IXP.shtml

相关文章

xml的介绍、xml的示例文件、xml语法介绍

xml的介绍 xml是可扩展的标记性语言 xml的主要作用&#xff1a; 1.用来保存数据&#xff0c;而且这些数据具有自我描述性 2.它可以作为项目或者模块的配置文件 3.还可以做网络传输的格式(现在以JSON为主) xml的示例文件 先创建一个文件 文件命名为xxx.xml 在xml文件中书写内…

XML文件简介

XML基本概念 单独的数据,它的含义很模糊。所以数据+含义,适用于传输数据,而不是显示数据(HTML)XML(eXtensible Markup Language),可扩展标记语言:意义+数据标签可自定义,具有自描述性纯文本文件,跨系统/平台/语言W3C标准(1998年,发布XML1.0,包括几乎所以的Unicode…

XML(一)

一&#xff0c;XML简介 XML&#xff08;EXtensible Markup Language&#xff09;&#xff1a;可扩展标记语言 XML 是一种很像HTML的标记语言。 XML 的设计宗旨是传输数据&#xff0c;而不是显示数据。 XML 标签没有被预定义。您需要自行定义标签。 XML 是 W3C 的推荐标准。…

XML文档基础及其解析

一、XML1. 概念&#xff1a;Extensible Markup Language 可扩展标记语言* 可扩展&#xff1a;标签可以自定义的。<user>、<hobby>* 功能1. 存储数据2. 在网络中传输2. XML和HTML的区别1. xml标签都是自定义的&#xff0c;html标签使预定于的2. xml的语言严格&#…

xml文件介绍

简介&#xff1a;本文主要讲解xml文件的格式&#xff0c;用途等等&#xff1b; xml概述 1.1初步认识一下xml 一段xml格式&#xff1a; 1.2什么是xml xml是传输和存储数据 html是展示数据 写一段xml文件&#xff0c;文件后缀为xml格式 所有内容必须需要一个根节点/根标签…

JavaWeb1-3学习总结(BootStrap,xml,tomcat,servlet)

1.1 BootStrap 1、概念 一个前端开发的框架&#xff0c;Bootstrap&#xff0c;来自 Twitter&#xff0c;是目前很受欢迎的前端框架。Bootstrap 是基于 HTML、CSS、JavaScript 的&#xff0c;它简洁灵活&#xff0c;使得 Web 开发更加快捷。 2、好处 定义了很多的css样式和j…

全面理解xml文件

XML XML相关概念 概述&#xff1a;Extensible Markup Language 可扩展标记语言 功能 ​ 存储数据 配置文件在网络中传输 xml和html的区别 XML标签都是自定义的&#xff0c;hmtl标签是预先定义的xml的语法严格&#xff0c;html语法松散XML是存储数据的&#xff0c;html是展示…

Java数组和方法

一、数组 1.定义&#xff1a;数组(array)是一种用于存储多个相同类型数据的存储模型。 格式1&#xff1a;数据类型[] 变量名 &#xff08;推荐使用&#xff09; 例子&#xff1a; int[ ] arr 定义了一个int类型数组&#xff0c;数组名是arr 格式2&#xff1a;数据类型 变量…

总结JS中常用的数组的方法大全

总结JS中常用的数组方法 JS中常用的数组方法总结 数组(Array)是一种复杂的数据类型&#xff0c;它属于Object(对象)类型&#xff0c;用来将一组数组合在一起&#xff0c;通过一个变量就可以访问一组数据。在使用数组时&#xff0c;经常会搭配循环语句使用&#xff0c;从而很方便…

17种数组常用方法

数组的常用方法&#xff08;内置方法&#xff1a;直接使用&#xff0c;只需按要求传递对应的参数&#xff09; 标红的为重点 一维数组&#xff1a;数组元素只有一个下标&#xff08;通过一个下标就可以定位数组中的元素&#xff09; 1.join(连接字符)&#xff1a;作用是将数…

Array数组的方法

1.Array.from() 将类数组结构转化为数组实例&#xff0c; 一参数是类数组对象即任何可迭代的结构&#xff0c;或者有一个length属性和可索引元素的结构 二参数是映射函数参数&#xff08;可选&#xff09;此函数可增强新函数的值&#xff0c; 三参数是指定映射函数中的this…

常用处理数组的方法

常用处理数组的方法 一、Es5 1.Arr.map() 数组中的每个元素会执行一次回调函数&#xff0c;结果作为一个新的数组返回&#xff0c;不改变原数组let arr [1, 2, 3, 4, 5] let newArr arr.map(x > {return x*2 // 将数组的每一项乘以2 }) console.log(newArr) // [2, 4, …

JS数组常用方法整理(14种常用方法)

目录 1.增 1.1 push(): 1.2 unshift(): 2.删 2.1 pop(): 2.2 shift() 3.改&#xff08;增、删&#xff09;&#xff1a; 3.1 splice() 4.查 4.1 slice() 5.将数组转换为字符串&#xff1a; 5.1 toString() 5.2 join() 6.数组拼接 6.1concat() 7.检测数组中是否包…

总结: 数组常用的方法

在实际开发当中, 数组和对象使用到最多的; 数组和对象有很多的方法, 这里主要探讨一下: 数组的增删改查数组的排序方式数组转换成其他数据类型的方式ES6数组新增常用的迭代方式 为什么需要数组? 数组可以存入不限数的数据, 并且可以使用下标值进行访问; 数据在数组的内部是有…

hive 宽表变竖表 长表变宽表

1.这是源数据以及需要转化的目标表. 我们的方法是 , 用 GROUP BY按照year分组 , 并且依次提取1月,2月,3月,4月的 num,具体实现 1 2 3 4 5 6 select year, max(case when month1 then money else 0 end) as M1, max(case when month2 then money else 0 end) as M2, max(case w…

【pandas】变形(长宽表变换)

变形 长宽表的变形 长表变宽表就是一个分类变量的多个值展开成多个变量&#xff0c;和哑变量变换有点相似&#xff0c;但不是0-1编码而是其他变量的值。 宽表变长表类似&#xff0c;多个类别可以化在一个分类变量下。 pivot pivot是一种典型的长表变宽表的函数&#xff0c;…

数据库设计--大宽表

宽表的概念 基本概念 宽表从字面意义上讲就是字段比较多的数据库表。通常是指业务主题相关的指标、维度、属性关联在一起的一张数据库表。 由于把不同的内容都放在同一张表存储&#xff0c;宽表已经不符合三范式的模型设计规范&#xff0c;随之带来的主要坏处就是数据的大量冗…

Flink cdc+ doris 大宽表实践~

还没整理好&#xff0c;别慌。 一&#xff0c;业务问题&#xff1a; 多个表关联join&#xff08;涉及时间维度跨度很长&#xff09;&#xff0c;几乎等同于全量关联&#xff0c;这个时候flink sql join没法做&#xff0c;因为state会无线增大&#xff0c;然后OOM。 二&#xf…

实现MySQL同步数据到ES构建宽表

作者介绍 Ceven&#xff0c;德勤乐融(北京)科技有限公司 邮箱&#xff1a;likailindeqinyuerong.com 前言 CloudCanal 近期提供了自定义代码构建宽表能力&#xff0c;我们第一时间参与了该特性内测&#xff0c;效果不错。开发流程详见官方文档 《CloudCanal自定义代码实时加…

宽表:数据仓库 - “宽表”之争?

昨天在技术交流群里一个问题引发了激烈的讨论&#xff0c;我决定把它记录下来。 问题如下&#xff1a;DWD 中有宽表么&#xff1f; 作为扫盲文章&#xff0c;基础知识我们再普及一下&#xff0c;先介绍下基础相关概念。 数仓分层&#xff08;来自&#xff1a;个人理解&#xff…