`

DOM那点事儿。。

阅读更多

DOM简介

DOM的接口和类

DOM的用法

1.DOM简介:

DOM是Document Object Model的缩写,即文档对象模型。

该模型定义了HTML和XML文件在内存中文档结构,提供了对HTML和XML文件的访问,储存的方法。利用DOM规范,可以实现DOM文档和XML之间的相互转换,对相应的DOM文档的内容进行遍历或其他的操作。

如果要自由的操作XML文件,就要用到DOM(文档对象模型)的规范。

DOM的原理简单点说,就是通过解析XML文档,为XML文档在逻辑上建立一个树模型,在DOM中有这个树的概念。

树的节点是一个个对象。我们通过存取这些对象就能够操作所谓的"XML"文档中的内容了。

<? version="1.0" encoding="GB2312" ?>
<!--使用DOM解析关于学生信息的XML文档,然后使用DOM的接口向该文档中添加关于教师的信息。最后再用改动后的XML文档替换该文档。程序运行前,学生信息的XML文档(class.xml)内容,如下图标所示-->
<班级>
              <学生 编号="A001">
	        <姓名>张三</姓名>
	           <年龄>20</年龄>
	           <电子邮件>zhangsan@163.com</电子邮件>
	           <身高>179.5</身高>
	           <电话>13351810278</电话>
	          <单位>北京百度有限公司</单位>
              </学生>

              <学生 编号="B001">
	        <姓名>李四</姓名>
	           <年龄>22</年龄>
	           <电子邮件>lisi@163.com</电子邮件>
	           <身高>180.5</身高>
	           <电话>13336982232</电话>
                        <单位>北京新浪限公司</单位>
               </学生>
</班级>

 2.DOM的优缺点对比

    DOM的优势主要表现在:易用性强,使用DOM时,将把所有的XML文档信息都储存在你计算机的内存中,并且遍历简单,

支持XPath,增强了易用性。

 

DOM的缺点主要表现在:效率低,解析速度慢,内存占用量过高,对于大文件来说几乎不可能使用。

在Java中DOM类的介绍

1.

DocumentBuilderFactory类

DocumentBuilderFactory类是一个抽象类,该类主要用于定义工厂的API,使用应用程序能够从XML文档中获取生成DOM对象树的解析器。该类位于java.xml.parsers包中。只有一个受保护的构造方法。

其构造方法如下:

protected DocumentBuilderFactory()方法:用于组织实例化的受保护构造方法。

2.DocumentBuilder类是一个抽象类,主要用于从XML文档中获取DOM文档实例。

可以用过DocumentBuilderFactory.new DocumentBuilder();代码获取此类的实例。

 

获取子类的实例后,将可以从各种输入流来解析XML。

 

该类有一个受保护的构造方法 如下:

protected DocumentBuilder();

DocumentBuilder类 其他的常用办法如下:

1).Document.parse(String uri)方法:将给定的URI的内容解析为一个XML文档,并且返回一个新的Document对象。

2).abstract Document new Document()方法:将获取DOM Document对象的一个新实例来生成一个DOM树。

3).void reset()方法:将此 DocumentBuider重置为其原始配置。

4).abstract void setEntityResolver(EntityResolver er)方法:指定使用EntityResolver 解析要解析的XML文档中存在的实体。

5).abstract void setErrorHandler(ErrorHandler eh)方法:指定解析器要使用的ErrorHandler. 

DOM的基本接口介绍

Document接口

Document接口表示整个HTML或XML文档。它不仅指文档的根,并提供对文档数据的基本访问。Document接口是对文档进行操作的入口,它是从Node接口继承过来的。该接口位于org.w3c.dom包中。

该接口的常用方法有以下几种: 

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。太困了不写了。。待续中

 

 

1
0
分享到:
评论

相关推荐

    jdom.jar,dom4j.jar,dom.jar,sax.jar,jaxen.jar解析xmljar包

    这是java解析xml所必须的jar包,包括dom.jar dom4j.jar sax.jar jdom.jar jaxen.jar(xpath必须包).

    Front-End:前端那些事儿

    前端那些事儿:high_voltage::bullseye::artist_palette:一、JS篇原型 原型链 继承作用域 闭包 堆栈溢出 内存泄漏异步 单线程 线程DOM操作(增删改查)数组去重、排序---什么是函数柯里化?以及说一下JS的API有哪些应用...

    jsoup:Java HTML 解析器

    使用 DOM 遍历或 CSS 选择器查找并提取数据 操作HTML 元素、属性和文本 根据安全列表清理用户提交的内容,以防止 XSS 攻击 输出整洁的 HTML jsoup 旨在处理各种常见的 HTML;从原始和验证,到无效的标签汤;jsoup 将...

    详解Vue路由开启keep-alive时的注意点

    这个不是业务的要求,但是看到每次进入页面就重新渲染DOM然后再获取数据更新DOM,觉得作为一个前端工程师有必要优化下的加载逻辑,正好vue提供了keep-alive的功能,所以就试用了下。当然,干任何事儿都不会一帆风顺...

    茶余饭后聊聊Vue3.0响应式数据那些事儿

    “别再更新了,实在是学不动了”这句话道出了多少前端开发者的心声,”不幸”的是 Vue 的作者在国庆... 重构 virtual DOM 新的响应式机制 今天咱就聊聊重构后的响应式数据。 尝鲜 重构后的 Vue3.0 和之前在写法上有很

    FrankKai.github.io:趁你还年轻的技术博客,主要包括前端,node,运维和随想,文章在issues。目前主要从事前端开发工作

    关于WAI-ARIA那些事儿 [译]HTML进阶之Content categories [译]HTML进阶之Data attributes [译]如何隐藏DOM元素? [译]HTML Timers CSS 你真的理解浏览器盒模型吗? 我不知道CSS,你知道吗? 简单理解CSS layout和...

    前端面试,独有前端面试题详解,前端面试刷题必备,1000+前端面试真题,Html、Css、JavaScript、Vue

    前端面试,独有前端面试题详解,前端面试刷题必备,1000+前端面试真题,Html、...方案如何设计,用什么技术点,什么样的系统架构,难点会在哪里? Day379:如果让你来实现一个前端监控系统,应该考虑什么?如何去实现?

    puppeteer-usage:基于puppeteer的实践和应用

    如果您也用puppeteer做一些有趣的事儿,欢迎交流。 爬虫 针对搜索的爬虫,此类页面特点: 滚动加载,加载图片 请求接口,接口会变 页面结构会变 为什么使用puppeteer? 因为 api 简洁,对于其他的,前端更易上手。 ...

    Vue数据双向绑定的深入探究

    确实,使用过vue的框架做开发的人都会感觉到,以前写一大堆操作dom,bom的东西,现在用不着了,对开发者来说更容易去注重对操作逻辑的思考和实现,省了不少事儿呢!!! 我是直接从原生js,jq的开发用过度到使用vue...

    Xpage学习笔记

    // dojo.connect(dojoBtn.domNode,"onclick","showDia"); dojo.connect(dojoBtnNode,"onclick","showDia"); } dojo.addOnLoad(btnDemo);]]&gt; 2.5.1.2 使用xpage按钮控件 按钮控件"&gt; &lt;![CDATA[ var ...

Global site tag (gtag.js) - Google Analytics