Javaweb-xml编程-Jaxp解析xml文档
来源:互联网 发布:淘宝天下小二是干嘛的 编辑:程序博客网 时间:2024/06/05 16:17
知识点1:xml解析概述
XML解析方式:dom和sax
XML解析开发包:Jdom、dom4j、Jaxp
Dom和sax解析方法的区别:
--1.dom解析的优点是对文档crud(create read update delete)比较方便,缺点是占用内存比较大;
--2.sax解析的优点是占用内存少,解析速度快,缺点是只适合做文档的读取,不适合做文档的crud。
---------------------------------------------------------------------------
知识点2:调整JVM内存大小
通常我们会使用dom进行增删改查,这样有的时候就会造成Java虚拟机内存溢出。
提示错误:outofMemoryError
控制Java虚拟机内存大小:①点击程序②RunAs->RunConfigurations③Arguments④VMarguments中填写-Xmx80m(表示将内存调制80m)
-----------------------------------------------------------------------------
知识点3:使用Jaxp对xml文档进行解析
--JAXP开发包是J2EE的一部分,使用时不需要导包‘
--javax.xml.parsers包中的DocumentBuiiderfactory(抽象解析类,不能直接实例化)用于创建DOM模式的解析器对象。
--使用newDocumentBuilder()得到DOM解析器,使用parse()方法对xml进行解析
实例说明:
package xml;import javax.lang.model.element.Element;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import org.junit.Test;import org.w3c.dom.Document;import org.w3c.dom.Node;import org.w3c.dom.NodeList;//使用dom方法对xml文档进行crudpublic class Demo2 {@Testpublic void read1() throws Exception{//创建工厂DocumentBuilderFactory factory= DocumentBuilderFactory.newInstance();//得到dom解析器 DocumentBuilder builder = factory.newDocumentBuilder();//解析xml文档,得到代表文档的documentDocument document = builder.parse("src/book.xml");//读取xml文档中:<书名>数据结构</书名>NodeList list = document.getElementsByTagName("书名");Node node = list.item(1);String content = node.getTextContent(); System.out.println(content);}@Testpublic void read2() throws Exception{//创建工厂DocumentBuilderFactory factory= DocumentBuilderFactory.newInstance();//得到dom解析器 DocumentBuilder builder = factory.newDocumentBuilder();//解析xml文档,得到代表文档的documentDocument document = builder.parse("src/book.xml");//得到根节点Node root = document.getElementsByTagName("书架").item(0);//递归的方法,得到孩子,孩子的孩子list(root);//得到所有标签名称}private void list(Node node){if(node instanceof Element){//判断node是不是一个标签,不是标签就什么都不做 System.out.println(node.getNodeName());}//一调用这个方法就打印 NodeList list = node.getChildNodes(); for(int i=0;i<list.getLength();i++){ Node child = list.item(1); list(child); }}}
注:xml文件内容:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE 书架 SYSETEM "book.dtd"><书架> <书> <书名>数据结构</书名> <作者>严蔚敏</作者> <售价>39.0元</售价> </书> <书> <书名>大话设计模式</书名> <作者>程杰</作者> <售价>45.0</售价> </书></书架>
阅读全文
0 0
- Javaweb-xml编程-Jaxp解析xml文档
- JAXP解析XML文档
- Javaweb-xml编程-Dom4j解析xml文档
- 用JAXP解析XML文档
- 用JAXP解析XML文档
- JAXP对xml文档进行DOM解析
- jaxp对xml文档进行dom解析
- JAXP SAX模式解析xml文档
- java--JAXP对xml文档的解析
- 使用JAXP解析XML
- jaxp对xml解析
- Java JAXP 解析XML
- JAXP解析XML
- jaxp解析xml
- XML之JAXP解析
- jaxp解析xml
- XML解析之JAXP
- jaxp解析xml
- xshell怎么连接不上阿里云服务器,windows如何连接阿里云服务器,设置端口
- Retrofit2联网框架
- Linux常用命令sed
- docker 列出镜像命令
- 技术团队领导者定位
- Javaweb-xml编程-Jaxp解析xml文档
- 【Opencv】树莓派配置Opencv 3.2 + Raspicam (二) 编译Opencv 3.2 + Raspicam
- 03组件的生命周期和事件处理
- 原生态openstack安装
- HDOJ 1202 The calculation of GPA
- Codeforces 884D:合并果子
- MySql-02.查询
- Dice Possibility hiho一下 第174周
- HDU 5919-Sequence II(主席树)