12/05,12/06 ----XML篇

本文详细介绍了XML解析器DOM和SAX的工作原理,包括DOM的树型结构和SAX的事件模型,同时提供了关键代码示例,帮助开发者理解和应用这两种解析方式。
 

昨天的日志没有写,太忙了没有时间写。第一天的课程是XML,是冯威老师给我们上的,冯老师讲课简单易懂,幽默风趣,是我很喜欢的那种类型的老师;这两天讲的内容

主要是XML,花了一点点的时间介绍的基础知识,然后重点分析了对XML的解析。解析XML有两种思想:dom和sax;dom的思想:一次性的将XML文档读入到内存中,在内存

中架构代表整个DOM树(倒着的树)的Document对象,从而再对XML文档进行操作【总结:DOM采用树型结构】。sax的思想:如果XML文件比较大的话,用dom解析的话会比较浪费内存,因此就有了sax的

思想:允许在读取文档的时候,即对文档进行处理,而不必等到整个文档装在完才对文档进行操作【总结:SAX采用的是事件模型】。

知识点回顾与总结【】:

1.DOM中的三中节点:元素节点,属性节点,文本节点【重点理解】

2.DOM的解析过程以及关键代码【要写的出来后面的学习要用到】:

//创建dom解析器的工厂类实例:

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance( );

//通过工厂类的实例获得dom解析器

DocumentBuilder db = dbf.newDocumentBuilder();

//加载xml文件获得Document对象

Document document = db.parse(new File("src/cn/itcast/jaxp01/books.xml"))

//获得节点的集合

NodeList bookeNodeList = document.getElementsByTagName(“书”);

//从结合中得到单个节点,判断它的类型,bookeNodeList.item(i)

//转换节点到相应的类型:

Node.ELEMENT_NODE,Node.ATTIBUTE_NODE,Node_TEXT_NODE

//调用getNodeName,geNodeValue,getNodeType可以得到节点名,结点值。

3.SAX的解析过程以及关键代码【要看的懂代码以及解析的流程】:

  //创建SAX解析器工厂对象的实例

   SAXParserFactory sf = SAXParserFactory.newInstance();

  //通过sax解析器工厂对象的实例获得sax解析器对象

   SAXParser sp = sf.newSAXParser();

  //通过sax的解析器对象来获取xml读取器对象

  XMLReader reader = sp.getXMLReader();

  //设置读取器的事件处理程序(注册监听),允许应用程序注册内容事件处理程序

  reader.setContentHandler(new ContentHandler1()); //写一个内部类ContentHandler 实现ContentHandler接口

  //解析xml

   reader.parse(“src/cn/itcast/demo01/books.xml”);

  // ContentHandler1注意里面的方法调用时间

   startDocument,startElement,characters,endElement,endDocument.

4.DOM4J的解析过程以及关键代码【重点理解*****,会写】:使用DOM4J要导入DOM4J的包,

 

  

5.DTD要看的懂是什么意思,不一定要会写。

6.Schema的知识点:Schem的出现是为了解决DTD中如果有相同标签,就不能够很好的分辨出谁是谁。要知道books.xsd前面的那段代码都分别是什么意思【难点,重点】

 

7.解析XML的思想有两种,dom 和sax

  解析器【就是具体实现了上面两种方式】:有Crimson(sun1.4)、Xerces(IBM 1.5) 、Aelfred2(DOM4J)

  XML解析开发包:JAXP(java.xml.parser),JDOM,DOM4J

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值