xml(1)
来源:互联网 发布:知乎热门话题 编辑:程序博客网 时间:2024/05/22 14:55
参考: w3school
XML入门
引入
HTML, 超文本标记语言。 html语言语法是很松散的! 1)标签不区分大小写的! 2)标签可以不匹配的。 由w3c组织,针对html的语法缺陷,去设计了另一门,叫xml语言。 html语言的标签是固定的。
XML语言
XML 概念 可扩展标记语言 标记数量 是不固定的,可扩展的 作用 1)描述带关系的数据结构(作为软件的配置文件)properties配置文件: 键值对 name=eric password=123456 xml可以描述包含与被包含的关系。
配置使用场景:
1)框架(struts2 , hibernate,spring),xml作为框架的配 置文件
2)tomcat服务器软件配置文件(web.xml server.xml)
2)装载数据(作为小型的“数据库”)。
XML作用
作为软件配置文件
PCweb服务器:学生管理系统 - > 添加学生 -> name=张三,age=20 -> 提交到后台程序 -> 把数据存储到数据库中 两台通讯条件; IP地址和端口 java代码: 根据ip和端口连接数据库服务器(ip改动会改变代码) properties文件: ip=211.34.21.43 port=20 xml文件: <host-list> <host id="main"> <ip> 211.34.21.43</ip> <port>20</port> </host> <host id="backup"> <ip> 211.34.21.44</ip> <port>20</port> </host> </host-list> PC数据库服务器1:oracle数据库 211.34.21.43 20 PC数据库服务器2:oracle数据库 211.34.21.44 20
作为小型数据库
教师管理系统 教师信息: 姓名 工龄 邮箱地址 传输数据: 字符串: 张|三|20|zhangsan@qq.com|.......|.... (格式不是行业规范的,不通用) xml格式: <teacher-list> <teacher> <name></name> <email></email> <workage></workage> .... </teacher> <teacher> <name></name> <email></email> <workage></workage> .... </teacher> <teacher-list> (xml是w3c组织的制定的标准) json格式 获取字符串,截取字符串数据。 财务系统 发邮件给教师: 邮箱地址 姓名 方案1:财务系统中也存储了一套教师信息。数据维护成本比较高了!!! 方案2: 财务系统使用的教师数据从教师管理系统中发送过去的。
XML语法
标签
<student>学生</student> 注意: 1)分带标签体的标签,也有空标签。 2)标签是区分大小写 3)标签一定要配对 4)标签中间不能含有空格 5)不能使用数字开头 6)如果没有指定名称空间的话, 标签名中间不能含有冒号 7)在同一个xml文件中,有且仅有一个根标签
属性
<student id="1"></student>注意: 1)一个属性分为属性名和属性值。属性名和值之间使用=号分割。 2)属性值一定要使用单引号或者双引号包含,不能省略,也不能单双混用! 3)一个标签内可以包含多个属性,但是不能出现同名的属性
注释
<!-- xml --->
文档声明
<?xml version="1.0" encoding="码表"?> version: xml的版本号 encoding: 表示解析xml文件内容时使用的码表 xml文件的编码问题: 1)xml文件内容保存的编码(另存为-》选择编码保存) 2)解析xml文件内容的编码( <?xml version="1.0" encoding="utf-8"?> ) 以上两个编码必须保存一致,才能避免中文乱码问题。 注意: 如果在ecplise开发工具上,编写xml文件,那么xml文件内容自动按照文档声明的encoding的编码保存,所以不会中文乱码问题.
转义字符
和html的转义字符.
CDATA块
把CDATA块中的内容全部原样输入
在编写XML文件时,有些内容可能不想让解析引擎解析执行,而是当作原始内容处理。
遇到此种情况,可以把这些内容放在CDATA区里,对于CDATA区域内的内容,XML解析程序不会处理,而是直接原封不动的输出。
语法:<![CDATA[ 内容 ]]>
<![CDATA[ <itcast> <br/> </itcast> ]]>
处理指令(不用了,过时了)
<?xml-stylesheet type="text/css" href="1.css"?>
XML解析
xml解析方式
1)DOM解析: 2)SAX解析
DOM解析的工具
Sun官方jaxp工具 jdom工具 dom4j工具: 三大框架读取xml文件的程序。(非官方的,第三方的) dom for java iphone4s iphone for steven
dom4j工具使用
1)到dom4j的官方下载 。dom4j-1.6.1.zip 2)导入dom4j的支持jar包、 dom4j-1.6.1.jar核心包
DOM4J
DOM在java平台上的应用
dom4j是一套开源的类库。
集成的 XPath(路径查询语言)支持、 XML Schema(约束模式文档)支持。
具体操作:
获取到dom4j的jar包以及帮助文档。
将jar包设置到classpath中,就可以使用dom4j中提供的对象,进行xml文档的解析了。
查看帮助文档了解对象的使用。
XML文档基本操作——Document
获取xml文档对象Document。
File xmlFile = new File(“test.xml”); SAXReader reader = new SAXReader(); Document xmlDoc = reader.read(xmlFile);
XML文档基本操作——Element
获取根元素对象
Element root = xmlDoc.getRootElement();
获取根元素名称
String elementName = root.getName();
获取直接子元素对象
通过元素名称获取元素对象 Element element = root.element(“元素名称");
获取所有直接子元素对象集合
List elementList = root.elements();
获取元素对象中的文本
获取element元素的内部文本
String text = element.getText();
获取element子元素内部文本
String text = element.elementText(“子元素名称”);
XML文档基本操作——Attribute
获取元素属性对象
通过属性名获取元素属性对象 Attribute attribute = element.attribute(“属性名称");
通过索引获取属性对象 Attribute attribute = element.attribute(0);
获取所有属性对象集合 List attributeList = root.attributes();
获取属性值
通过属性对象
String value = attribute.getValue();
通过元素对象 String value = element.attributeValue(“属性名称”);
XML文档基本操作——创建
创建文档Document Document document = DocumentHelper. createDocument();
创建元素 Element element = document.addElement(“元素名称");
创建属性 element. addAttribute(“属性名”,“属性值");
添加属性方法返回的是原元素对象。如同StringBuffer。
创建文本 element.addText(“文本");
XML文档基本操作——删除节点
remove(Element element)
remove(Attribute attribute)
remove(Text text)
…… remove(Node node)
Node接口的子类对象都可以移除
注意:remove是移除直接子节点时使用 parentElement.remove(childElement);
XML文档基本操作——建立xml文件
建立xml文件
FileWriter fw = new FileWriter(“students2.xml”);XMLWriter writer = new XMLWriter(fw);writer.write(document);writer.close();
建立漂亮的xml文档,可以指定字符编码
OutputFormat format = OutputFormat.createPrettyPrint();format.setEncoding(“GBK");XMLWriter writer = new XMLWriter(fw,format);
DOM 的问题
DOM 构建整个文档驻留内存的树。如果文档很大,就会要求有极大的内存。
DOM 创建表示原始文档中每个东西的对象,包括元素、文本、属性和空格。如果您只需关注原始文档的一小部分,那么创建那些永远不被使用的对象是极其浪费的。
DOM 解析器必须在您的代码取得控制权之前读取整个文档。对于非常大的文档,这会引起显著的延迟。
总结:
xml解析
dom解析方法: dom4j的工具
查: 标签: element("name") elements("name") elements(); getName() 标签名称 getRootElement(): 根标签 属性: atrributeValue("name") 属性值 atrribute("name") 对象 atrributes() 属性对象列表 getName() : 属性名 getValue() 属性值 文本: getText(); 当前标签的文本 elementText("name") 子标签的文本 增: DocumentHelper.createDocument() 文档 addElement("name"); 标签 addAtribute("name","value" ) 属性 改: setValue() 修改属性值 addAttribute(”同名“) 修改属性值 setText() 修改文本内容 删除: detach() 标签、属性 getParent().remove(标签/属性)
- XML (1) 什么是XML
- XML(1)---XML简介
- XML-----1、XML简介
- xml 1
- XML(1)
- xml(1)
- XML-1
- XML(1)
- xml 1
- XML (1)
- XML-1
- xml(1)
- xml学习--1什么是XML
- XML学习1:XML概述
- XML总结(1)-XML基础
- XML简明教程(1)什么是XML元素
- XML入门指南(1)XML简介
- XML简明教程(1)什么是XML元素
- 每日产品辣评:华仔代言的金品质立天下,这次请来了Beyond
- java框架总结之struts2:
- 每日产品辣评:重量8g售价4万美元,比黄金还贵几十倍的东西是什么鬼?
- 腾讯众创空间明年要孵化100个项目 潘石屹为创业者破戒
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- xml(1)
- vivo如何极致玩“快”让够快才畅快X6&X6Plus成最火爆手机
- 关于pv操作的理解
- 安卓开发的日期选择控件
- HTTP详解--为Cookie服务的首部字段(13)
- 盘点2015年最受欢迎APP 移动医疗太凶猛
- V粉热情引爆京城 京东10分钟送达够快才畅快vivo X6Plus
- Java高级篇-3-String类
- github的使用方法(转)