Java-基础-6.Xml
一:为什么使用Xml?
1.目前有很多的写代码语言,java,scala,sql,py等等语言。也有很多的系统,例如苹果系统,安卓系统等。但是实际生产中,我们代码和数据,在各个平台和语言之间进行流动。如果我们想在流动的中间做一些操作,我们需要有一种共性的东西,在各个语言中都适用,在各个平台之间都能跑通。
二:什么是Xml?
- 是一种语言。
- xml与操作系统、编程语言的开发平台都无关。
- 实现不同系统之间的数据交互。
三:怎么使用Xml?
- 最基本的信息。
(1)必须有XML声明语句 (第一行)。
(2)必须有且仅有一个根元素。
(3)标签成对。
(4)元素正确嵌套 。 - 标签、元素、属性
标签,在xml中使用<>,引起来的内容称作为标签。标签有开头有结尾,结尾多一个/。
属性,属性为标签增添了一些信息,形式为 属性名=“属性值”。
元素,标签开始和结尾为一个整体,统一称为元素。 - 注意点
(1)特殊字符。
(2)CDATA
PCDATA 是被解析的字符,CDATA是没有被解析的字符。CDATA具体使用如下:
<test>
<![CDATA[
function matchwo(a,b)
{
if (a < b && a < 0) then
{
return 1;
}
else
{
return 0;
}
}
]]>
</test>
- 约束。
虽然xml非常灵活,但是我们在开发过程中,可以设定一些约束,来方便整个团队的开发。常见的约束有以下俩种。
(1)DTD约束
我们一般约束以下几点
元素的定义规则
元素之间的关系规则
属性的定义规则
<!DOCTYPE 根元素 [元素声明]>
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE poem [<!ELEMENT poem (author,title,content)><!ELEMENT author (#PCDATA)><!ELEMENT title (#PCDATA)><!ELEMENT content (#PCDATA)>
]>
<poem><author>王维</author><title>鹿柴</title><content>空山不见人,但闻人语声。返景入深林,复照青苔上。</content>
</poem>
(2)Schema约束
如果DTD约束写的信息比较繁琐,那么我们使用Scahme进行约束。
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.myschema.com.cn"
xmlns="http://www.myschema.com.cn"
elementFormDefault="qualified"><xs:element name="person"><xs:complexType><xs:sequence><xs:element name="id" type="xs:integer"/><xs:element name="name" type="xs:string"/><xs:element name="sex" type="xs:string"/><xs:element name="address" type="xs:string"/></xs:sequence></xs:complexType></xs:element>
</xs:schema>
- 解析。
DOM4J
添加jar包
<?xml version="1.0" encoding="utf-8" ?><students><Student><Name>张三</Name><Num>2018001</Num><Classes>0113</Classes><Address>上海外国语</Address><Tel>123456</Tel></Student><Student><Name>王五</Name><Num>2018002</Num><Classes>0114</Classes><Address>上海外国语</Address><Tel>657432</Tel></Student></students>
public static void main(String[] args) throws Exception{SAXReader reader=new SAXReader();Document document=reader.read(newFile("src\\source.xml"));ElementrootElm=document.getRootElement();//获得根节点ElementmemberElm=rootElm.element("Student"); //获得子节点ElementageElm=memberElm.addElement("age");//添加子节点ageElm.setText("29");//设置节点文本
// 创建格式化类OutputFormat format =OutputFormat.createPrettyPrint();
// 设置编码格式,默认UTF-8format.setEncoding("UTF-8");
// 创建输出流,此处要使用Writer,需要指定输入编码格式,使用OutputStream则不用FileOutputStream fos = new FileOutputStream("src\\source.xml");
// 创建xml输出流XMLWriter writer = new XMLWriter(fos,format);writer.write(document);writer.close();
}
Java-基础-6.Xml相关推荐
- java基础之XML
目录 java基础之XML 1. XML解析概述 2. DOM4J介绍 2.1 常用包 2.2 内置元素 2.2 Element类 2.3 Attribute类 2.4 常用操作 3. 代码演示 3. ...
- 小汤学编程之JAVA基础day14——xml和反射
一.xml 1.简介 2.特点 3.使用步骤 二.Reflect反射 1.概念 2.理解Class类 3.反射的功能 4.两个案例 一.xml 1.简介 xml ...
- Java基础加强重温_13:XML(可拓展标记语言)、XML语法、XML约束、XML解析(Dom4j,JAXP)、Dom4j基本使用、Xpath表达式(XML路径语言)、XML解析综合案例
摘要 Java基础加强重温_13: XML(可拓展标记语言.作用:小型数据库.框架配置文件.不同平台数据交换). XML语法(文档.标签/元素.属性.注释.转义字符.CDTA区) XML约束(DTD约 ...
- 我的面试标准:第一能干活,第二Java基础要好,第三最好熟悉些分布式框架!...
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:hsm_computer www.cnblogs.com/J ...
- [Spring 深度解析]第1章 Java基础
第1章 ◄Java基础► 在学习Spring之前我们需要对Java基础语法有一定的了解,Java中最重要的两个知识点是注解和反射.注解和反射在Spring框架中应用的最广泛.掌握注解和反射,有助于后面 ...
- 给Java新手的一些建议——Java知识点归纳(Java基础部分)
写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给 ...
- Java基础、多线程、JVM、集合八股文自述(持续更新)
Java基础.多线程.JVM.集合八股文自述 一.Java基础 1.1 object类有哪些方法? getClass().hashCode().equals().clone().toString(). ...
- Java基础-Eclipse第三方安装包管理工具之Maven
Java基础-Eclipse第三方安装包管理工具之Maven 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 玩过Linux的小伙伴应该都知道yum吧,我们只要把搭建好的yum仓库配 ...
- Java 中的 XML:Java 文档模型的用法
Java 中的 XML:Java 文档模型的用法 英文原文 内容: 代码对比 DOM JDOM dom4j Electric XML XPP 结束语 下一次... 参考资料 关于作者 对本文的评价 相 ...
- java基础知识大全,java 基础知识点汇总
java 基础知识点汇总 问题一:我声明了什么! String s = "Hello world!"; 许多人都做过这样的事情,但是,我们到底声明了什么?回答通常是:一个Strin ...
最新文章
- testng xml 示例
- sdut 1488 连通分量的个数(并查集)
- 从并发视角来看智能合约(上)【渡鸦论文系列】
- CreateProcess
- Eclips将lib打入war中
- LwIP应用开发笔记之二:LwIP无操作系统UDP服务器
- OpenTURNS 不确定性、风险和统计数据开源组件
- centeros 卸载mysql_完全卸载MySql
- LORD MicroStrain 惯性传感系统
- 2015中国国内元器件分销商10亿俱乐部20强榜单
- Spring Tools Suite(STS)的下载与安装
- 梦想家-致停不下来的我们
- 八、vue_options之computed、watch属性选项
- AWS云、阿里云、腾讯云、华为云--云服务器全球区域对比图
- Z变换 拉氏变换S z,r,w,s,Ts,jΩ关系
- VS Code中常用插件
- 使用sws_scale转换视频、使用swr_convert转换音频
- 互联网财富管理平台应该怎么做?(上篇)
- mysql中my.cnf不生效解决
- Android端外推送到底有多烦?(转载自一个1000万用户App的CTO的对推送的看法)