-
SAX方式解析xml步骤 1.通过SAXParserFactory的静态newInstance()方法获取一个SAXParserFactory的对象。 2.通过SAXParserFactory对象的newSAXParser()方法返回一个SAXParser类的对象。 3.创建一个类继承DefaultHandler,重写其中的一些方法并创建类的实例. 4.通过SAXParser类的Parse(Stringname,df)方法解析xml文件,参数Stringname为路径名,df为继承于DefaultHandler类的实例化对象,不需要定义变量存储返回的类型. SAX是按节点顺序进行解析,遇到xml的声明即开始解析,遇到最后一个节点的尾节点便结束解析,需要用户自己定义一个类继承于DefaultHandler类来解析,遇到开始标签节点便通过startElement开始解析节点,遇到结束标签节点便通过endElement结束解析,再遇到开始节点继续通过startElement解析,一直循环直到xml文件最后的结束标签节点. 5.在继承于DefaultHandler这个类中需要重写父类的startElement()和endElement()方法,来进行开始节点与结束节点的解析,再重写startDocument()方法与endDocument()方法来标识解析的开始与结束.查看全部
-
解析文件节点以及子节点的值 1.先获取子节点,Node下有方法getChildNodes()来获取某个节点的子节点的集合,返回NodeList类型. NodeList childNodes=book.getChildNodes()//包含book节点所有的子节点,两个标签之间的所有内容都看成是子节点. 2.通过childNodes的getLength()方法返回字点的个数(空格与换行字符看成为一个文本节点,标签与结束标签看成一个元素节点) 3.通过NodeList的item(i)获取指定位置子节点的名称返回Node类型.再用Node类型的getNodeName()方法就可以获取节点名 Node childnode=childNodes.item(i); String name=childnode.getNodeName(); 可以通过Node类的getNodeType()来区分文本类型的node以及元素类型的node,看当前Node类型是否与Node."节点类型英文全称"相同. if(childnode.getNodeType==Node.ELEMENT_NODE) {System.out.println(name)} 4.不能直接通过Node的getNodeValue()来获取节点的值,因为元素节点的nodeValue的返回值为null而且标签之间的文本被看做是该标签的子节点.所以要用Node的getFirstChild()此时获取的子节点为文本节点,Text节点类型的nodeValue返回值为节点内容,再getNodeValue()。 或者直接用Node的getTextContent()方法直接获取节点值。 如果该Node节点还存在其他子节点并且有节点值<name><a>广州大学</a>华软学院</name>,那么用getFirstChild().getNodeValue()一样是null,因为获取的子节点仍然是element类型的 如果用Node的getTextContent(),一样会把<a>元素节点当成是Content输出。 结果为广州大学华软学院.查看全部
-
使用Dom解析xml文件的属性节点。 在不知道节点属性的个数和属性名时: 1、通过document.getElementByTagName("标签名")获得所有标签名的节点,得到一个NodeList集合 2、通过NodeList.getLength()获得集合长度,遍历集合 3、Node node = NodeList.item(index)获得里面的节点 4、通过NamedNodeMap attrs = node.getAttributes()获取所有属性集合 5、通过attrs.getLength()遍历集合,Node attr = atrrs.item(index) 6、attr.getNodeName()获得属性名,attr.getNodeValue()获取属性值 前提已经知道book节点有且只有1个id属性,将book节点进行强制类型转换,转换成element类型。 1、通过document.getElementByTagName("标签名")获得所有标签名的节点,得到一个NodeList集合 2、通过NodeList.getLength()获得集合长度,遍历集合 3、element book=(element)bookList.item(i);//强制转换为element类型 4、string attrValue = book.getAttribute("id");查看全部
-
表现:以.xml为文件扩展名的文件 存储:树形结构 每个节点需要一个开始标签<标签名>和结束标签</标签名>。 节点名称区分大小写。 节点的属性 1、可以写在节点名称标签开始的后半部分<标签名 属性="属性值">。 2、可以作为节点的值写在两个标签中间。<标签名>节点值</标签名>。(节点值不用双引号) 可以不断拓展子节点来描述父节点包含的内容。 xml在写正文前,要加一个声明:<?xml version="1.0" encoding="UTF-8"?>声明版本与编码。 xml用于存储集成信息,能用相同的xml文件将不同的东西联系起来。查看全部
-
@test不可少 解析xml大文件时,dom会溢出,dom4j不会 dom4j用途非常广查看全部
-
解析xml文件步骤查看全部
-
当boox.xml文件达到1.5M时,dom4j性能超过dom 性能测试: Perfomance--DOM:691 Perfomance--SAX:277 Perfomance--JDOM:529 Perfomance--DOM4J:401查看全部
-
JDMO与DOM、DOM4J查看全部
-
SAX解析优缺点查看全部
-
DOM优缺点查看全部
-
SAX是JAVA平台提供的解析方式,是基于事件驱动的解析方式。通过handler方法,有次序的,从外到内的一个个的触发查看全部
-
DOM和SAX平台无关的官方解析方式,DOM4J和JDOM只有JAVA能用查看全部
-
DOM解析,一次性加载XML文件并且形成DOM树,当XML较大的时候,会浪费时间查看全部
-
导入jar包的两种方式: 1.通过右键项目,选择build Path下的Add External Archives导入系统任意路径下的jar包。但是这种方式并没有将jar包真正导入项目中,一旦迁移,则会丢失 2.通过右键项目,新建lib文件夹,直接将jar包拷贝到lib文件夹下,然后再通过build Path将jar包导入进来查看全部
-
SAX解析是通过自己创建的Handler处理类,按顺序从外到内的依次解析每个节点查看全部
举报
0/150
提交
取消