月归档:2009 年七月

DOM应用编程接口,操作HTML文档

A、遍历文档的节点   DOM把一个HTML文档视为树,因此,遍历整个树是应该是家常便饭。跟之前说过的一样,这里我们提供两个遍历树的例子。通过它,我们能够学会如何使用childNodes[]和firstChile、lastChild、nextSibling、previousSibling遍历整棵树。   例子1– sample3_1.htm:   这个例子使用了childNodes[]和递归方式来遍历整个文档,统计文档中出现的Element元素总数,并把Element标记名全部打印出来。需要特别注意的是,在使用DOM时,必须等文档被装载完毕再执行遍历等行为操作文档。sample3_1.htm具体代码如下: <html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>无标题文档</title><script language="javascript">var elementName = ""; //全局变量,保存Element标记名,使用完毕要清空function countTotalElement(node) { //参数node是一个Node对象 var total = 0; if(node.nodeType == 1) { //检查node是否为Element对象 total++; //如果是,计数器加1 elementName = elementName + node.tagName + "rn"; //保存标记名 } var childrens = … 继续阅读

发表在 Java Web | 标签为 , , | 留下评论

使用DOM操作HTML文档

使用DOM操作HTML文档   Node对象定义了一系列属性和方法,来方便遍历整个文档。用parentNode属性和childNodes[]数组可以在文档树中上下移动;通过遍历childNodes[]数组或者使用firstChild和nextSibling属性进行循环操作,也可以使用lastChild和previousSibling进行逆向循环操作,也可以枚举指定节点的子节点。而调用appendChild()、insertBefore()、removeChild()、replaceChild()方法可以改变一个节点的子节点从而改变文档树。   需要指出的是,childNodes[]的值实际上是一个NodeList对象。因此,可以通过遍历childNodes[]数组的每个元素,来枚举一个给定节点的所有子节点;通过递归,可以枚举树中的所有节点。下表列出了Node对象的一些常用属性和方法: Node对象常用属性: 属性 描述 attributes 如果该节点是一个Element,则以NamedNodeMap形式返回该元素的属性。 childNodes 以Node[]的形式存放当前节点的子节点。如果没有子节点,则返回空数组。 firstChild 以Node的形式返回当前节点的第一个子节点。如果没有子节点,则为null。 lastChild 以Node的形式返回当前节点的最后一个子节点。如果没有子节点,则为null。 nextSibling 以Node的形式返回当前节点的兄弟下一个节点。如果没有这样的节点,则返回null。 nodeName 节点的名字,Element节点则代表Element的标记名称。 nodeType 代表节点的类型。 parentNode 以Node的形式返回当前节点的父节点。如果没有父节点,则为null。 previousSibling 以Node的形式返回紧挨当前节点、位于它之前的兄弟节点。如果没有这样的节点,则返回null。   Node对象常用方法: 方法 描述 appendChild() 通过把一个节点增加到当前节点的childNodes[]组,给文档树增加节点。 cloneNode() 复制当前节点,或者复制当前节点以及它的所有子孙节点。 hasChildNodes() 如果当前节点拥有子节点,则将返回true。 insertBefore() 给文档树插入一个节点,位置在当前节点的指定子节点之前。如果该节点已经存在,则删除之再插入到它的位置。 removeChild() 从文档树中删除并返回指定的子节点。 replaceChild() 从文档树中删除并返回指定的子节点,用另一个节点替换它。

发表在 Java Web | 标签为 | 留下评论

HTML文档的节点

HTML文档的节点   DOM下,HTML文档各个节点被视为各种类型的Node对象。每个Node对象都有自己的属性和方法,利用这些属性和方法可以遍历整个文档树。由于HTML文档的复杂性,DOM定义了nodeType来表示节点的类型。这里列出Node常用的几种节点类型: 接口 nodeType常量 nodeType值 备注 Element Node.ELEMENT_NODE 1 元素节点 Text Node.TEXT_NODE 3 文本节点 Document Node.DOCUMENT_NODE 9 document Comment Node.COMMENT_NODE 8 注释的文本 DocumentFragment Node.DOCUMENT_FRAGMENT_NODE 11 document片断 Attr Node.ATTRIBUTE_NODE 2 节点属性   DOM树的根节点是个Document对象,该对象的documentElement属性引用表示文档根元素的Element对象(对于HTML文档,这个就是<html>标记)。Javascript操作HTML文档的时候,document即指向整个文档,<body>、<table>等节点类型即为Element。Comment类型的节点则是指文档的注释。具体节点类型的含义,请参考《Javascript权威指南》,在此不赘述。   Document定义的方法大多数是生产型方法,主要用于创建可以插入文档中的各种类型的节点。常用的Document方法有: 方法 描述 createAttribute() 用指定的名字创建新的Attr节点。 createComment() 用指定的字符串创建新的Comment节点。 createElement() 用指定的标记名创建新的Element节点。 … 继续阅读

发表在 Java Web | 标签为 | 留下评论

Oracle笔记3

1、oracle数据库连接方式     1 sqlplus 进行连接 【oracle client】        tnsnames.ora 里面的配置信息                      【服务器信息: 协议、端口、ip/主机名】                      【数据库信息: sid (services_name)】     2 jdbc链接 不需要 oracle-client       thin链接             jdbc:oracle:thin:host:port:sid 使用jdbc连接数据库没有统一规则, jdbc:____:____:host:__:___?____     具体链接词的写法与规则与jdbc驱动有关     3 ODBC链接            需要oracle-client            需要使用 tnsnames.ora 中的配置信息 ——————————————————————- … 继续阅读

发表在 Oracle | 标签为 | 留下评论

Oracle笔记2

Oracle 中主要的数据类型 Varchar2 变长字符串     4000个汉字   varchar2(1~4000) Number    数字                     Number = Number(10) =Number(10,0)                                     Number(总长度,小数点后有几位) DATE       日期                     DATE     进行操作的时候必须使用函数 TO_DATE(’2009-11-11′,’yyyy-mm-dd’) CLOB       大的字符数据对象 2G     CLOB    Stream BLOB       大的二进制数据对象 2G    BLOB    Stream 1 数据类型[oracle 内置的数据类型 - 因为oracle允许自定义数据类型] * VARCHAR2()                   变长字符串,长度<4000 NVARCHAR2()   —本地字符集   变长字符串,长度<4000 … 继续阅读

发表在 Oracle | 标签为 | 留下评论

Oracle笔记1

oracle   商用的大型数据库【mysql 也是关系型数据库      xdbms – 面向对象的数据库 – NHN China 】          rdbms    关系型数据库   —– 一般使用         【基本的数据库】          1 用的最多          2 olap (oracle) 和 ldap (oracle) 都是基于 oracle rdbms          3 oracle 的功能“很”强大 、 “很”麻烦              数据库的记录条数都是没有限制的,但是数据库的性能与记录条数是成反比的。         PostgreSql   … 继续阅读

发表在 Oracle | 标签为 , , , | 留下评论

JSP 有四种范围

2009年07月06日 星期一 下午 02:37 JSP 有四种范围,分别为Page、Request、Session、Application。所谓的Page,指的是单单一 页JSP Page 的范围。若要将数据存入Page 范围时,可以用pageContext 对象的setAttribute( ) 方法;若要取得Page范围的数据时,可以使用pageContext对象的getAttribute( )方法。 一:Page 这个范例主要用来说明一个概念:若数据设为Page范围时,数据只能在同一个JSP网页上取得,其他JSP网页却无法取得该数据。 二:Request Request 的范围是指在一JSP 网页发出请求到另一个JSP 网页之间,随后这个属性就失效。 现在将Name和Password的属性范围设为Request,当RequestScope1.jsp转向到RequestScope2.jsp时,RequestScope2.jsp也能取得RequestScope1.jsp设定的Name和Password值。不过其他的JSP网页无法得到Name和Password值,除非它们也和RequestScope1.jsp有请求的关系。 除了利用转向(forward)的方法可以存取request 对象的数据之外,还能使用包含(include)的方法。 假若我将RequestScope1.jsp 的<jsp:forward page="RequestScope2.jsp"/> 改为 <jsp:include page="RequestScope2.jsp" flush="true"/> 执行RequestScope1.jsp 时,结果还是和图5-4 一样。表示使用<jsp:include>标签所包含进来的网页,同样也可以取得Request 范围的数据。 三:Session、Application 当 我们使用getAttribute(String name)取得name 属性的值时,它会回传一个java.lang.Object,因此,我们还必须根据name … 继续阅读

发表在 Java Web | 标签为 | 一条评论