XML文件

目录

XML简介

特点

作用

XLM文档结构

XML标签

XML编写注意事项

属性命名空间

XLM命名空间的作用

解析XML技术

DOM:

解析包:org.w3c.dom

DOM解析XML文件步骤:

SAX

DOM4J


XML简介

XML(EXtensible Markup Language),可扩展语言

特点

XML与操作系统,编程语言的开发平台无关

作用

数据交互

配置应用程序和网站

Ajax基石

XLM文档结构

<?xml version="1.0" encoding="UTF-8"?>
<clothes>
    <s>
        <max>165</max>
    </s>
    <m>
        <min>165</min>
        <max>170</max>
    </m>
    
    <L>
        <最高身高>175</最高身高>
        <最低身高>170</最低身高>
    </L>
</clothes>
 

XML标签

XML文档内容是由一系列标签元素组成

<元素名 属性名 = ”属性值“>元素内容</元素名>

空元素:<name> </name>,<name></name>,<name/>

XML编写注意事项

所有XML元素都必须有结束标签

XML标签对大小写敏感

XML必须正确的嵌套

同级标签以缩进对齐

元素名称可以包含字母,数字或其他的字符

元素名称不能以数字或者标点符号开始

元素名称中不能含空格

属性命名空间

除非带有前缀,否则属性属于所有元素的命名空间

XLM命名空间的作用

解决在复杂,大型XML文件中,出现名称相同,但是含义不同的元素

解析XML技术

DOM:

基于XML文档树结构的解析

适用于多次访问的CML文档

特点:比较消耗资源

介绍:文档对象模型(Document Object Model)

DOM把XML文档映射成一个倒挂的树

解析包:org.w3c.dom

常用接口 常用方法 返回
Document:表示整个XML文档 NodeList getElementsByTagName(String Tag) 按文档顺序返回文档中指定标记名称的所有元素集合
Element oreateElement(String tagName) 创建指定标记名称的元素
Node:该文档树中的单个节点 NodeList getChidNods() 获取该元素的所有子节点,返回节点集合
Element: XML文档中的一个元素 String getTagName() 获取元素名称

DOM解析XML文件步骤:

1.创建解析器工厂对象DocumentBuilderFactory

2.通过解析器工厂对象创建解析器对象

3.通过解析器对象调用方法将XML文件转换Document对象

4.通过Document对象去操作XML文件里的数据

DocumentBuilderFactory ddf = DocumentBuilderFactory.newInstance();
		
		try {
			//第二步通过解析器工厂对象dbf创建解析器对象
			DocumentBuilder db= ddf.newDocumentBuilder();
			//第三步:通过解析器对象调用的方法将XML文件转换为Document对象
			Document document = db.parse("收藏信息.xml");		
			System.out.println(document);
		} catch (ParserConfigurationException e) {
			e.printStackTrace();
		} catch (SAXException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
//定义得到Dcoument方法
	public Document getDocument(String uri){
		Document document=null;
		try {
			//创建解析器工厂对象
			DocumentBuilderFactory dbf= DocumentBuilderFactory.newInstance();
			//通过解析器工厂独享创建解析器对象
			DocumentBuilder db = dbf.newDocumentBuilder();
			document = db.parse(uri);
			
		} catch (ParserConfigurationException e) {
			e.printStackTrace();
		} catch (SAXException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return document;
		
	}
	//测试类
	

	public static void main(String[] args) {
		//创建XmlDocumentDemo02类对象
		XmlDocumentDemo02 xdd = new XmlDocumentDemo02();
		//调用getDocument()方法将"收藏信息.xml"文件转换为Document对象
		Document document = xdd.getDocument("收藏信息.xml");
		
		//获取数据
		NodeList brands =document.getElementsByTagName("Brand");
		for (int i = 0; i < brands.getLength(); i++) {// getLength()列表中的节点数。
			//Node是一个节点口,节点口包括元素节点,属性节点,文本节点等,而现在我们获取的是brand的节点,所以需要类型转换
			Node node = brands.item(i);// 返回集合中的第 index 个项。
			Element brand = (Element)node;
			String value = brand.getAttribute("name");//通过元素节点的属性名称获取属性的值
			System.out.println(value);
		}

	}

SAX

基于事件解析

适用于大数据量的XML文档

特点:占用资源少,内存消耗小

DOM4J

非常优秀的java XML API

性能非常优异,功能强大

开放源代码

 

相关文章

学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习...
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面...
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生...
Can’t connect to local MySQL server through socket \'/v...
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 ...
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服...