java解析xml jar包_java解析XML文件四种方法之引入源文件

1.DOM解析(官方)

try {

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

DocumentBuilder               db = dbf.newDocumentBuilder();

Document               document = db.parse("file");

NodeList                              list = document.getElementsByTagName("ndoe");//常规的DOM操作

} catch (Exception e) {

e.printStackTrace();

}

parse()方法加载XML文件到当前程序。

将XML文件全部加载到内存中,然后逐个解析。

2.SAX解析(官方)

try {

SAXParserFactory factory = SAXParserFactory.newInstance();

SAXParser               parser = factory.newSAXParser();

parser.parse("file",handler);

}catch (Exception e) {

e.printStackTrace();

}

参数handler是一个继承了DefaultHandler类的子类的实例化对象。

这个子类中解析文档、元素的方法如下:

--------startDocument()                                      //解析XML文件开始

-----------------------startElement()                       //开始解析某个元素

-----------------------endElement()                        //结束解析该元素(通常将解析获得的信息存到一个对象)

-----------------------startElement()                       //开始解析另一个个元素

-----------------------endElement()                        //结束解析元素

---------endDocument()                                      //解析XML文件结束

SAX解析XML文件的方法是从头到尾一步一步地解析文档的节点元素,是一种事件驱动模式,对内存耗费

较小。

3.JDOM解析(非官方,DOM的拓展)

需要事先导入一个JDOM的jar包到项目。后面导入的类也是JDOM包下的的类

try {

SAXBuilder saxbuilder = new SAXBuilder();

Document    document = saxbuilder.build("file");

Element rootElement = document.getRootElement(); //获得XML文件的根节点

}catch (Exception e) {

e.printStackTrace();

}

获得根节点之后,通过getChildren()方法获得其子节点的List集合。

4.DOM4J解析(非官方,DOM的拓展,现在比较流行的)

同理,由于是非官方的,我们依然需要引入一个DOM4J的jar包

try {

SAXReader    reader = new SAXReader();

Document document = reader.read("file");

Element rootElement = document.getRootElement();//获得XML文件的根节点

}catch (Exception e) {

e.printStackTrace();

}

性能优异,灵活性好,功能强大,易使用,所以现在比较流行使用DOM4J解析XML。

注意:以上所有引入文件方法的参数"file",可以是文件路径字符串,可以是一个文件对象,也可以是

一个文件输入流对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值