oracle笔记 12

XML与JAVA

<1>DOM (Document Object Model)
文档对象模型
  思路:把XML文件变成内存中的树型结构
        利用树的数据结构的特点来访问

<例子> ch12_3_1
 编程序的步骤
  <1>导入必要的包
import javax.xml.parsers.*;//xml解析
import org.xml.sax.*; //异常处理
import org.w3c.dom.*; //dom包
import java.io.*; //读取文件  

 <2>  文档处理工厂
  DocumentBuilderFactory dbf =  DocumentBuilderFactory.newInstance();

 <3> 建立DocumentBuilder 文档解析器
  DocumentBuilder db = dbf.newDocumentBuilder();
        
 <4> 导入XML文件 parse方法把一个XML文件变成内存的树
   Document document = db.parse(new File(args[0]));

 <5>
Node  对象表示的是XML的节点/元素
document.getFirstChild() 得到根元素

Node child = (Node)document.getFirstChild();

 <6>
child.getNextSibling() 得到兄弟节点(同一个层次上相邻的节点)
child.getNodeName()  得到节点的名字(XML的标记)
child.getNodeType() 得到节点的类型()
   1     元素
   2     属性
   3     文本

   for ( ; child != null; child = child.getNextSibling()) {
               System.out.print("元素: " + child.getNodeName());
               System.out.println("/类型: " + child.getNodeType());
               printChildNode(child, 0);
           }

Node temp   
temp.hasChildNodes()  判断节点是否还有子节点

NodeList   代表节点的数组

NodeList nodes = temp.getChildNodes();

nodes.item(i) 返回每个节点 Node
    nodes.item(0)  第 一个dept
    nodes.item(1)  第 二个dept
nodes.item(i).getNodeValue() 得到节点的值

<例子> ch14_2_1
// 获取根元素
        Node root = document.getDocumentElement();

通过指定标记来访问元素
NodeList node=document.getElementsByTagName("dept");
  得到dept元素的节点数组

访问节点的属性
NamedNodeMap atts = tagNodes.item(i).getAttributes();

Node att = atts.item(j);
                System.out.print("   +-- " + att.getNodeName());
                System.out.println("/" + att.getNodeValue());       

<举例练习1>

<例子ch12_4_4> 利用DOM来修改XML
    增加一个节点 删除一个节点 修改一个节点

 DOM技术特点:
   <1>XML文件一次性加载到内存变成树,XML文件
很大,会非常耗内存
   <2>可以对XML文件 读和写
   <3>访问效率还是较高的
   <4>可以随机的访问节点

 SAX规范 (Simple API for XML)
   特点:
  <1>边读取文件 边解析  适合于大型的XML文件
  <2>只能读取XML文件
  <3>只能顺序访问节点
  <4>效率相对较低

 应用在大型的XML解析,事件监听器的模型
 DOM技术比SAX技术更为广泛

<如何来用DOM技术>
  例子: 动态的页面 转化成 静态的页面

   适用在大型网站高点击率的页面
   要求相应速度快的页面
  缺点:不是实时的,与用户的交互会差一点

 A) 数据库中的表  转化为 XML文件
     JDBC   IO操作

 B) 为XML文件 设计 XSL文件
     XSL XPath 设计一个XSL模版

 C) XSL+XML  生成一个 html文件
     DOM Transformer对象进行转换
     例子 ch12-5

posted @ 2013-01-25 17:40  金虹巴巴  阅读(158)  评论(0编辑  收藏  举报