xml基础--解析(DOM)

1.简介:

DOM--Document Object Model(文档对象模型),在应用程序中,基于DOM的xml分析器交一个xml文档转换成一个对象模型集合(DOM树),应用程序正是通过对这个对象模型的操作,来实现对XML文档数据的操作。通过DOM接口,应用程序可以在任何时候访问XML文档听任何一部分数据,利用DOM接口的机制也称作随机访问机制。DOM强制使用树模型来访问XML文档中的消息。

DOM树所提供的随机访问方式给应用程序的开发带来了很大的灵活性,可以任意地控制整个XML文档中的内容。由于DOM分析器把整个XML文档转化成DOM树放在了内存中,因此当文档比较大或者结构比较复杂时,对内存的需求就比较高。

DOM是一个对象化的XML数据接口,一个与语言无关,与平台无关的标准接口规范

DOM文档树中的根节点与根元素结点:

根节点(document)代表的xml文档本身,是解析xml文档的入口

根元素节点(root)表示xml文档的根元素,对应于xml文档的Root

最常见的节点类型:

-元素:元素是XML的基本构件。元素可以有其它元素、文本节点或两者兼有来作为其子节点。元素节点还是可以有属性的唯一类型的节点

-属性:属性节点包含关于元素节点的信息,但实际不认为它是元素的子节点

-文本:文本,可以包含许信息或仅仅是空白

-文档(根节点):是整个文档中所有其它节点的父节点

不常见的节点类型:CDATA、注释、处理指令  

DOM的基本接口:

文档对象模型利对象来把文档模型化,这些模型不仅描述了文档的结构,还定义了模型中对象的行为。换句话说,文档图中的节点不是数据结构,而是对象,对象中包含方法和属性。

DOM中,对象模型要实现:用来表示、操作文档的接口;接口的行为和属性;接口之间的关系以及互操作

Document接口---对文档进行操作的入口,从Node接口继承过来

Node接口--其他大多数接口的父类,例如Document,Element,Attribute,Text,Comment等接口都是从Node接口中继承过来

NodeList接口--是一个节点的集合,包含了某个节点的所有子节点

NamedNodeMap接口--也是一个节点的集合,通过该接口,可以建立节点名和节点之间的一一映射关系,利用节点名可以直接访问特定的节点

2.DOM解析XML

1>步骤:

a.获得DOM解析器工厂----DocumentBuilderFactory

DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();

b.获得具体DOM解析器---DocumentBuilder

DocumentBuilder db=dbf.newDocumentBuilder();

c.解析XML文档,获得Document对象(根节点)

Document document=db.parse(new File("candidate.xml"));
NodeList list=document.getElementsByTagName("PERSON");

3.JAXP(Java API for xml parsing):用于xml解析的Java API。

4.DocumentBuilderFactory与DocumentBuilder的关系:

5.各种不同类型的Node的getNodeName()和getNodeValue()获取的不同值:


6.使用Dom递归解析xml文档

private static void parseXml(Element element){
		String tagName=element.getNodeName();
		System.out.print("<"+tagName);
		NodeList children=element.getChildNodes();
		NamedNodeMap map=element.getAttributes();
		if(0==map.getLength()&&0==children.getLength()){
			System.out.print("/>");
			return;
		}
		if(null!=map){
			for(int i=0;i<map.getLength();i++){
				Attr attr=(Attr)map.item(i);
				System.out.print(" "+attr.getNodeName()+"=\""+attr.getNodeValue()+"\"");
			}
		}
		System.out.print(">");
		if(null!=children){
			for(int i=0;i<children.getLength();i++){
				Node node=children.item(i);
				short nodeType=node.getNodeType();
				if(nodeType==Node.ELEMENT_NODE){
					parseXml((Element)node);
				}else if(nodeType==Node.TEXT_NODE){
					System.out.print(node.getNodeValue());
				}else if(nodeType==Node.COMMENT_NODE){
					System.out.print("<!--");
					String data=((Comment)node).getData();
					System.out.print(data);
					System.out.print("-->");
				}
				
			}
			
		}
			System.out.print("</"+tagName+">");
	}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值