- 浏览: 279327 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
u012934942:
博主我能转载您此篇文章吗?我会署上您的博客地址
quartz的触发器CronTriggerBean 配置 -
wentong0118:
多谢楼主
dom4j创建、解析XML jar包提供下载 -
wangyonglin1123:
非常不错
quartz的触发器CronTriggerBean 配置 -
956699:
请问连接局域网中电脑密码带有@字符怎么办?
基于SMB/JCIFS协议的共享文件上传和下载 -
guoranaccp:
帅
dom4j创建、解析XML jar包提供下载
childNodes 返回当前元素所有子元素的数组 使用 DOM 节点时需要一些属性和方法,因此我们首先来讨论节点的属性和方法。DOM 节点的属性主要有: nodeName报告节点的名称(详见下述)。 不常用的属性 上述大部分属性的意义都很明确,除了nodeName和nodeValue属性以外。我们不是简单地解释这两个属性,而是提出两个奇怪的问题:文本节点的nodeName应该是什么?类似地,元素的nodeValue应该是什么? 如果这些问题难住了您,那么您就已经了解了这些属性固有的含糊性。nodeName和nodeValue实际上并非适用于所有节点类型(节点的其他少数几个属性也是如此)。这就说明了一个重要概念:任何这些属性都可能返回空值(有时候在 JavaScript 中称为 “未定义”)。比方说,文本节点的nodeName属性是空值(或者在一些浏览器中称为 “未定义”),因为文本节点没有名称。如您所料,nodeValue返回节点的文本。 类似地,元素有nodeName,即元素名,但元素的nodeValue属性值总是空。属性同时具有nodeName和nodeValue。下一节我还将讨论这些单独的类型,但是因为这些属性是每个节点的一部分,因此在这里有必要提一提。 节点方法 接下来看看所有节点都具有的方法(与节点属性一样,我省略了实际上不适用于多数 HTML DOM 操作的少数方法): insertBefore(newChild, referenceNode)将newChild节点插入到referenceNode之前。记住,应该对newChild的目标父节点调用该方法。 通用节点类型 现在已经介绍了 DOM 节点的一些特性和属性(以及一些奇特的地方),下面开始讲述您将用到的一些特殊节点类型。多数 Web 应用程序中只用到四种节点类型: 文档节点表示整个 HTML 文档。 基本上所有基于 DOM 的代码中都要用到的第一个节点类型是文档节点。文档节点实际上并不是 HTML(或 XML)页面中的一个元素而是页面本身。因此在 HTML Web 页面中,文档节点就是整个 DOM 树。在 JavaScript 中,可以使用关键字document访问文档节点: // These first two lines get the DOM tree for the current Web page, // and then the <html> element for that DOM tree var myDocument = document; var htmlElement = myDocument.documentElement; JavaScript 中的document关键字返回当前网页的 DOM 树。从这里可以开始处理树中的所有节点。 也可使用document对象创建新节点,如下所示: createElement(elementName)使用给定的名称创建一个元素。 var pElement = myDocument.createElement("p"); var text = myDocument.createTextNode("Here's some text in a p element."); pElement.appendChild(text); bodyElement.appendChild(pElement); 一旦使用document元素获得对 Web 页面 DOM 树的访问,就可以直接使用元素、属性和文本了。 虽然会大量使用元素节点,但很多需要对元素执行的操作都是所有节点共有的方法和属性,而不是元素特有的方法和属性。元素只有两组专有的方法: 与属性处理有关的方法: 处理属性 处理元素很简单,比如可用document对象和上述方法创建一个新的img元素: var imgElement = document.createElement("img"); imgElement.setAttribute("src", "http://www.headfirstlabs.com/Images/hraj_cover-150.jpg"); imgElement.setAttribute("width", "130"); imgElement.setAttribute("height", "150"); bodyElement.appendChild(imgElement); 现在看起来应该非常简单了。实际上,只要理解了节点的概念并知道有哪些方法可用,就会发现在 Web 页面和 JavaScript 代码中处理 DOM 非常简单。在上述代码中,JavaScript 创建了一个新的img元素,设置了一些属性然后添加到 HTML 页面的 body 元素中。 查找嵌套元素 发现嵌套的元素很容易。比如,下面的代码用于发现和删除 清单 3 所示 HTML 页面中的所有img元素: // Remove all the top-level <img> elements in the body if (bodyElement.hasChildNodes()) { for (i=0; i<bodyElement.childNodes.length; i++) { var currentNode = bodyElement.childNodes[i]; if (currentNode.nodeName.toLowerCase() == "img") { bodyElement.removeChild(currentNode); } } } 也可以使用getElementsByTagName()完成类似的功能: // Remove all the top-level <img> elements in the body var imgElements = bodyElement.getElementsByTagName("img"); for (i=0; i<imgElements.length; i++) { var imgElement = imgElements.item[i]; bodyElement.removeChild(imgElement); } DOM 将属性表示成节点,可以通过元素的attributes来访问元素的属性,如下所示: // Remove all the top-level <img> elements in the body var imgElements = bodyElement.getElementsByTagName("img"); for (i=0; i<imgElements.length; i++) { var imgElement = imgElements.item[i]; // Print out some information about this element var msg = "Found an img element!"; var atts = imgElement.attributes; for (j=0; j<atts.length; j++) { var att = atts.item(j); msg = msg + ""n " + att.nodeName + ": '" + att.nodeValue + "'"; } alert(msg); bodyElement.removeChild(imgElement); } 对于 DOM 来说属性有一些特殊的地方。一方面,属性实际上并不像其他元素或文本那样是元素的孩子,换句话说,属性并不出现在元素 “之下”。同时,属性显然和元素有一定的关系,元素 “拥有” 属性。DOM 使用节点表示属性,并允许通过元素的专门列表来访问属性。因此属性是 DOM 树的一部分,但通常不出现在树中。有理由说,属性和 DOM 树结构其他部分之间的关系有点模糊。 虽然也能使用属性节点,但通常使用元素类的方法处理属性更简单。其中包括: getAttribute(name)返回名为name的属性值。 文本节点 需要考虑的最后一种节点是文本节点(至少在处理 HTML DOM 树的时候如此)。基本上通常用于处理文本节点的所有属性都属于节点对象。实际上,一般使用nodeValue属性来访问文本节点的文本,如下所示: var pElements = bodyElement.getElementsByTagName("p"); for (i=0; i<pElements.length; i++) { var pElement = pElements.item(i); var text = pElement.firstChild.nodeValue; alert(text); } 少数其他几种方法是专门用于文本节点的。这些方法用于增加或分解节点中的数据: appendData(text)将提供的文本追加到文本节点的已有内容之后。 到目前为止看到的多数代码都假设已经知道处理的节点是什么类型,但情况并非总是如此。比方说,如果在 DOM 树中导航并处理一般的节点类型,可能就不知道您遇到了元素还是文本。也许获得了p元素的所有孩子,但是不能确定处理的是文本、b元素还是img元素。这种情况下,在进一步的处理之前需要确定是什么类型的节点。 所幸的是很容易就能做到。DOM 节点类型定义了一些常量,比如: Node.ELEMENT_NODE是表示元素节点类型的常量。 nodeType 属性 可使用nodeType属性比较节点和上述常量 —— 该属性定义在 DOM node 类型上因此可用于所有节点,如下所示: var someNode = document.documentElement.firstChild; if (someNode.nodeType == Node.ELEMENT_NODE) { alert("We've found an element node named " + someNode.nodeName); } else if (someNode.nodeType == Node.TEXT_NODE) { alert("It's a text node; the text is " + someNode.nodeValue); } else if (someNode.nodeType == Node.ATTRIBUTE_NODE) { alert("It's an attribute named " + someNode.nodeName + " with a value of '" + someNode.nodeValue + "'"); } 这个例子非常简单,但说明了一个大问题:得到节点的类型非常简单。更有挑战性的是知道节点的类型之后确定能做什么,只要掌握了节点、文本、属性和元素类型提供了什么属性和方法,就可以自己进行 DOM 编程了
firstChild 返回当前元素的第一个下级子元素
lastChild 返回当前元素的最后一个子元素
nextChild 返回紧跟在当前元素后面的元素
nextSibling 指定表示元素值的读/写属性
nodeValue 返回元素的父节点
parentNode 返回元素的父
previousSibling 返回紧邻当前元素之前的元素
方法名
描述
getElementById(id)(document) 获取有指定惟一ID属性值文档中的元素
getElementByTagName(name) 返回当前元素中有指定标记名的子元素的数组
hasChildNodes() 返回一个布尔值,指示元素是否有子元素
getAttribute(name) 返回元素的属性值,属性由name指定
DOM对象的类型、属性和方法
节点的属性
nodeValue提供节点的 “值”(详见后述)。
parentNode返回节点的父节点。记住,每个元素、属性和文本都有一个父节点。
childNodes是节点的孩子节点列表。对于 HTML,该列表仅对元素有意义,文本节点和属性节点都没有孩子。
firstChild仅仅是childNodes列表中第一个节点的快捷方式。
lastChild是另一种快捷方式,表示childNodes列表中的最后一个节点。
previousSibling返回当前节点之前的节点。换句话说,它返回当前节点的父节点的childNodes列表中位于该节点前面的那个节点(如果感到迷惑,重新读前面一句)。
nextSibling类似于previousSibling属性,返回父节点的childNodes列表中的下一个节点。
attributes仅用于元素节点,返回元素的属性列表。
其他少数几种属性实际上仅用于更一般的 XML 文档,在处理基于 HTML 的网页时没有多少用处。
replaceChild(newChild, oldChild)用newChild节点替换oldChild节点。
removeChild(oldChild)从运行该方法的节点中删除oldChild节点。
appendChild(newChild)将newChild添加到运行该函数的节点之中。newChild被添加到目标节点孩子列表中的末端。
hasChildNodes()在调用该方法的节点有孩子时则返回 true,否则返回 false。
hasAttributes()在调用该方法的节点有属性时则返回 true,否则返回 false。
注意,大部分情况下所有这些方法处理的都是节点的孩子。这是它们的主要用途。如果仅仅想获取文本节点值或者元素名,则不需要调用这些方法,使用节点属性就可以了。
元素节点表示 HTML 元素,如a或img。
属性节点表示 HTML 元素的属性,如href(a元素)或src(img元素)。
文本节点表示 HTML 文档中的文本,如 “Click on the link below for a complete set list”。这是出现在p、a或h2这些元素中的文字。
处理 HTML 时,95% 的时间是跟这些节点类型打交道。因此本文的其余部分将详细讨论这些节点。(将来讨论 XML 的时候将介绍其他一些节点类型。)
文档节点
createTextNode(text)使用提供的文本创建一个新的文本节点。
createAttribute(attributeName)用提供的名称创建一个新属性。
这里的关键在于这些方法创建节点,但是并没有将其附加或者插入到特定的文档中。因此,必须使用前面所述的方法如insertBefore()或appendChild()来完成这一步。因此,可使用下面的代码创建新元素并将其添加到文档中:
元素节点
getAttribute(name)返回名为name的属性值。
removeAttribute(name)删除名为name的属性。
setAttribute(name, value)创建一个名为name的属性并将其值设为value。
getAttributeNode(name)返回名为name的属性节点(属性节点在 下一节 介绍)。
removeAttributeNode(node)删除与指定节点匹配的属性节点。
与查找嵌套元素有关的方法:
getElementsByTagName(elementName)返回具有指定名称的元素节点列表。
这些方法意义都很清楚,但还是来看几个例子吧。
属性节点
属性的奇特之处
需要指出的是,attributes属性实际上是对节点类型而非局限于元素类型来说的。有点古怪,不影响您编写代码,但是仍然有必要知道这一点。
removeAttribute(name)删除名为name的属性。
setAttribute(name, value)创建一个名为name的属性并将其值设为value。
这三个方法不需要直接处理属性节点。但允许使用简单的字符串属性设置和删除属性及其值。
insertData(position, text)允许在文本节点的中间插入数据。在指定的位置插入提供的文本。
replaceData(position, length, text)从指定位置开始删除指定长度的字符,用提供的文本代替删除的文本。
什么节点类型?
Node.ATTRIBUTE_NODE是表示属性节点类型的常量。
Node.TEXT_NODE是表示文本节点类型的常量。
Node.DOCUMENT_NODE是表示文档节点类型的常量。
还有其他一些节点类型,但是对于 HTML 除了这四种以外很少用到。我有意没有给出这些常量的值,虽然 DOM 规范中定义了这些值,永远不要直接使用那些值,因为这正是常量的目的!
发表评论
-
html file 只读 去掉右键 去掉ctrl+c和ctrl+v
2013-02-02 15:03 1266<input type="file" ... -
找了半天鼠标浮动到图片添加边框样式,终于找到合适的了
2012-12-28 11:42 4683今天页面上需要,就一直在网上找关于浮动加边框的样式,一直没有合 ... -
Ext.store加载完成后回调方法
2012-12-13 09:54 5196store.load({ callback ... -
写一个js生成随即字符串的函数
2011-09-27 17:29 966<script> function rando ... -
QQ在线咨询控件
2011-08-15 11:06 1323两个在线咨询控件,这个是直接弹出QQ窗体,试着尝试填出自己的j ... -
正则表达式判断IP合法
2011-07-18 14:52 1179//验证IP是否合法 obj=document.get ... -
ajax判断存在验证
2011-07-09 15:39 1014servlet: boolean validate = u ... -
做网页常常用到的js代码大全
2011-06-21 15:23 1120留着肯定会有用到的。 1、后退 前进 <input on ... -
不加href="javascript:;"照样有小手样式
2011-06-21 10:06 1099只需要加一个span属性即可。 <span class= ... -
最简单的IE8兼容
2011-06-20 16:43 1102最简单的方式就是在head中加入:<meta http- ... -
JS验证表单
2011-04-07 22:04 12111:js 字符串长度限制、判断字符长度 、js限制输入、限制不 ... -
万能导出excel ,javascript代码
2011-03-25 12:00 1792<!DOCTYPE HTML PUBLIC " ... -
八款JS框架介绍及比较
2011-01-12 22:55 1075八款JS框架介绍及比较 Dojo ... -
实用不花哨的JS代码大全
2010-11-03 17:26 1947实用且不花哨的js代码大全 事件源对象 event.sr ... -
取得FCKeditor的值及其他方法介绍
2010-10-29 14:22 1050取得FCKeditor的值及其他方法介绍 //获取格式化的 ... -
Ajax 基础(自己学习)
2010-09-28 16:19 999XMLHTTPRequest---->JavaScrip ...
相关推荐
综上所述,DOM4J是一个全面的XML处理工具,适用于各种XML相关的开发需求。无论你是新手还是经验丰富的开发者,理解和掌握DOM4J的基本概念和使用方法都能显著提升XML处理效率。通过提供的`dom4j-1.6.1`包,你可以深入...
以下是对Dojo 1.6 DOM相关操作的详细说明: 1. **dojo.query**: 这是Dojo提供的一个强大选择器,类似于jQuery的`$`函数。它可以解析CSS选择器,并返回一个NodeList,这个NodeList可以进行链式操作。例如,`dojo....
**标题:** DOM相关的操作 **描述:** 本文主要探讨了DOM(Document Object Model)在Web开发中的作用,以及如何进行相关操作。通过访问博主wy649898543在iteye上的博客,我们可以深入理解DOM的概念、重要性以及实际...
dom.js - 一个专门处理 DOM 相关操作的 JavaScript 工具方法库。原生 JavaScript 纯手动打造,无任何依赖;支持 UMD 和 ES6 模块规范,适应各种运行环境;支持调用 DOM 整体模块和独立调用方法;提供 100+ 实用的 ...
以下是相关的XML代码片段: ```xml <groupId>dom4j <artifactId>dom4j <version>1.6.1 ``` 这行代码告诉Maven使用DOM4J 1.6.1版本,并在编译和运行时自动下载和管理相应的库文件。 DOM4J的使用方法非常...
这个网站,提供了与DOM相关的教程或课程。 压缩包内的"DOM事件"文件,很可能包含了多个示例,这些示例展示了如何使用JavaScript来处理DOM事件。DOM事件是用户或浏览器执行的交互行为,如点击按钮、提交表单或者滚动...
BOM 提供了一些浏览器相关的功能,例如窗口、导航、历史记录等,而 DOM 则是文档对象模型,它允许开发者通过 JavaScript 操作文档的内容和结构。 DOM 概述 DOM 是一个文档对象模型,它将 HTML 文档抽象为一个树形...
这个列表只包含了一个条目"xml",可能意味着压缩包中包含的是与XML相关的文件或资源,可能是XML示例文件、测试用例或者与DOM4J处理XML相关的配置文件。 总结来说,DOM4J是一个强大的XML处理库,提供了丰富的API和...
DOM4J是一个强大的Java库,专门用于处理XML文档。...在Java开发中,尤其是处理XML相关任务时,DOM4J是一个不可或缺的工具。结合Jaxen,其XPath支持进一步增强了DOM4J的功能,使得XML操作更为便捷。
《正则+js+DOM手册大全》是一份珍贵的学习资源,包含了JavaScript、正则表达式以及DOM对象等关键领域的详细指南。这份集合共包括11个手册,专门为那些致力于掌握JavaScript编程语言及其相关核心技术的朋友而准备。...
通过理解并熟练使用DOM4J,开发者可以更高效地处理XML相关的任务,提高代码的可维护性和可读性。同时,由于其开源和社区活跃,DOM4J还拥有丰富的文档和社区支持,遇到问题时可以方便地找到解决方案。
DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了简单而直观的API,使得开发者...通过结合`dom4j-1.6.1.jar`和`jaxen-1.1-beta-6.jar`这两个jar包,开发者可以充分利用DOM4J的功能来实现各种XML相关的任务。
了解并掌握DOM4J,对于提升XML相关项目的开发效率至关重要。通过阅读DOM4J的API文档(如`dom4j-2.0.3-javadoc.jar`),结合源码学习(`dom4j-2.0.3-sources.jar`),可以深入理解其实现原理并更好地利用它来解决实际...
DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得XML的解析、创建、修改和查询变得简单。DOM4J的名字来源于...在实际开发中,熟练掌握DOM4J能极大地提升XML相关任务的开发效率。
DOM相关内容速查手册中涉及了许多关于DOM对象及其属性的知识点,下面将详细解释其中的关键点。 1. **offsetHeight** 和 **offsetWidth**:这两个属性分别返回元素的高度和宽度,包括内边距和边框,但不包括外边距。...
6. **Web性能优化**:转换DOM到图像可能会涉及大量计算,因此理解性能优化技巧,如延迟加载、异步处理、减少DOM操作等,对于优化这个过程至关重要。 7. **跨域问题**:由于同源策略的限制,当涉及到图片的跨域请求...
7. **Web Components**:如果Firefox支持,会介绍自定义元素和阴影DOM等相关概念。 总的来说,这份Gecko DOM Reference是Firefox开发者不可或缺的工具,无论你是新手还是经验丰富的开发者,都可以从中获得关于DOM...
**DOM4j 知识点详解** DOM4j 是一个灵活且功能强大的Java库,用于处理XML文档。它提供了一套全面的API来操作XML,包括读取、创建、修改和解析XML文档。以下是DOM4j中一些主要接口及其功能的详细解释: 1. **...
"jom4j_xpath"这个压缩包很可能包含了DOM4J和XPath的相关库文件,可能还包括相关的示例代码或文档,以帮助开发者快速理解和应用这两个工具。 使用这些库时,首先需要在项目中引入相应的jar包。对于Maven项目,可以...
这个“dom4j完整版.zip”压缩包包含了DOM4J的主要组件和相关资源,方便开发人员在项目中集成和使用。 首先,dom4j-1.6.1.jar是DOM4J库的核心文件,包含了所有必要的类和接口。这个版本的DOM4J支持Java DOM、SAX和...