昨天的日志没有写,太忙了没有时间写。第一天的课程是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