,,Java解析XML(4种方式)案例详解

,,Java解析XML(4种方式)案例详解

这篇文章主要介绍了Java 语言(一种计算机语言,尤用于创建网站)语言(一种计算机语言,尤用于创建网站)解析XML(4种方式)案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下

目录

1.数字正射影像图方式2.萨克斯管方式3.JDOM方式4.DOM4J方式总结

可扩展标记语言文件

?可扩展标记语言版本='1.0 '编码='utf-8 '?

班级

学生

名字cxx 1/名字

姓氏鲍勃1/姓氏

昵称明星1/昵称

马克85/马克

/学生

学生编号='493 '

名字cxx 2/名字

姓氏鲍勃2/姓氏

昵称明星2/昵称

马克85/马克

/学生

学生名册编号='593 '

名字cxx 3/名字

姓氏鲍勃3/姓氏

昵称明星3/昵称

马克85/马克

/学生

/类别

1.DOM方式

包com。cxx。XML

导入org。W3C。多姆。*;

导入javax。XML。解析器。文档生成器;

导入javax。XML。解析器。documentbuilderfactory

/**

* @作者:cxx

* Dom操作可扩展标记语言

* @日期:2018/5/29 20:19

*/

公共类DomDemo {

//用元素方式

公共静态空的元素(节点列表列表){

for(int I=0;我列出。getlength();i ) {

Element元素=(元素)列表。项目(一);

NodeList子节点=元素。获取子节点();

for(int j=0;j个子节点。getlength();j ) {

if (childNodes.item(j)).get nodetype()==节点。元素_节点){

//获取节点

系统。出去。打印(子节点。第(j)项.get nodename()':');

//获取节点值

系统。出去。println(子节点。第(j)项.getFirstChild().getNodeValue());

}

}

}

}

公共静态空节点(节点列表列表){

for(int I=0;我列出。getlength();i ) {

node node=list。项目(一);

NodeList子节点=节点。获取子节点();

for(int j=0;j个子节点。getlength();j ) {

if (childNodes.item(j)).get nodetype()==节点。元素_节点){

系统。出去。打印(子节点。第(j)项.get nodename()':');

系统。出去。println(子节点。第(j)项.getFirstChild().getNodeValue());

}

}

}

}

公共静态void main(String[] args) {

//1.创建DocumentBuilderFactory对象

DocumentBuilderFactory factory=DocumentBuilderFactory。新实例();

//2.创建文档生成器对象

尝试{

文档生成器生成器=工厂。newdocumentbuilder();

文件d=建筑商。parse(' src/main/resources/demo。XML’);

NodeList sList=d . getelementsbytagname(' student ');

//element(sList);

节点(sList);

} catch(异常e) {

e。printstacktrace();

}

}

}

结果截图

2.SAX方式

包com。cxx。XML

导入org。XML。萨克斯。属性;

导入org。XML。萨克斯。sax异常;

导入org。XML。萨克斯。帮手。默认处理程序;

导入javax。XML。解析器。sax解析器;

导入javax。XML。解析器。saxparserfactory

/**

* @作者:cxx

* SAX解析数字正射影像图

* 一行一行处理者

* startElement

*结束元素

* @日期:2018/5/29 20:03

*/

公共类SaxDemo

公共静态void main(String[] args)引发异常{

//1.或去萨克斯帕瑟工厂实例

SAXParserFactory工厂=SAXParserFactory。新实例();

//2.获取SAXparser实例

sax解析器sax解析器=工厂。newsaxparser();

//创建汉德尔对象

SAXDemoHandel Handel=new SAXDemoHandel();

sax解析器。parse(' src/main/resources/demo。XML ',Handel);

}

}

萨克斯德莫亨德尔类扩展了默认处理程序{

//遍历可扩展标记语言文件开始标签

@覆盖

public void startDocument()抛出sax异常{

超级棒。startdocument();

System.out.println('sax解析开始');

}

//遍历可扩展标记语言文件结束标签

@覆盖

公共void endDocument()抛出sax异常{

超级棒。结束文档();

System.out.println('sax解析结束');

}

@覆盖

公共void startElement(字符串uri,字符串本地名称,字符串qName,属性属性)引发sax异常{

super.startElement(uri,localName,qName,attributes);

如果(qname。等于('学生'){

系统。出去。println('============开始遍历学生=============');

//系统。出去。println(属性。getvalue('卷号');

}

else if(!qName.equals('student ')!qname。等于(' class '){

System.out.print('节点名称:' qName '-');

}

}

@覆盖

公共无效结束元素(字符串uri,字符串localName,字符串qName)引发sax异常{

super.endElement(uri,localName,qName);

如果(qname。等于('学生'){

System.out.println(qName '遍历结束');

系统。出去。println('============结束遍历学生=============');

}

}

@覆盖

公共空的字符(char[] ch,int start,int length)抛出sax异常{

super.characters(ch,start,length);

字符串值=新字符串(ch,start,length).trim();

如果(!价值。等于(“”){

System.out.println(值);

}

}

}

结果截图

3.JDOM方式

!jdom

属国

groupIdorg.jdom/groupId

artifactIdjdom/artifactId

版本1 .1 .3/版本

/依赖关系

包com。cxx。XML

导入org。JDOM。属性;

导入org。JDOM。文档;

导入org。JDOM。元素;

导入org。JDOM。输入。sax builder

导入Java。io。文件;

导入Java。io。文件输入流;

导入Java。io。filenotfoundexception

导入Java。io。inputstream

导入Java。util。列表;

/**

* @作者:cxx

* JDom解析可扩展标记语言

* 快速开发可扩展标记语言应用程序。

* 是一个开源项目

* JDOM主要用来弥补数字正射影像图和萨克斯管在实际应用当中的不足。

* @日期:2018/5/30 11:44

*/

公共类JDomDemo {

公共静态void main(String[] args)引发异常{

//1.创建SAXBuilder对象

sax builder sax builder=new sax builder();

//2.创建输入流

InputStream is=新文件InputStream(新文件(' src/main/resources/demo。XML’));

//3.将输入流加载到建设中

文档document=sax builder。构建(is);

//4.获取根节点

元素根元素=文档。getrootelement();

//5.获取子节点

ListElement children=根元素。获取子对象();

对于(元素子级:子级){

System.out.println('通过罗尔诺获取属性值:'孩子。get属性(“卷号”);

列表属性attributes=child。获取属性();

//打印属性

for (Attribute attr : attributes) {

系统。出去。println(属性getname()':'属性。getvalue());

}

ListElement children list=child。获取子对象();

System.out.println('======获取子节点-start======');

对于(元素o:儿童名单){

System.out.println('节点名:' o.getName() ' -' '节点值:' o . getvalue());

}

System.out.println('======获取子节点-end======');

}

}

}

结果截图

4.DOM4J方式

!- dom4j -

属国

groupIddom4j/groupId

artifactIddom4j/artifactId

版本1 .6 .1/版本

/依赖关系

包com。cxx。XML

导入org。dom4j。属性;

导入org。dom4j。文档;

导入org。dom4j。文档异常;

导入org。dom4j。元素;

导入org。dom4j。io。sax阅读器;

导入Java。io。文件;

导入Java。util。迭代器;

导入Java。util。列表;

/**

* @作者:cxx

* Dom4j解析可扩展标记语言

* @日期:2018/5/30 12:21

*/

公共类Dom4JDemo {

公共静态void main(String[] args)引发异常{

//1.创建读者对象

SAXReader reader=new SAXReader();

//2.加载可扩展标记语言

document=reader.read(新文件(' src/main/resources/demo。XML’));

//3.获取根节点

元素根元素=文档。getrootelement();

迭代器迭代器=根元素。元素迭代器();

while (iterator.hasNext()){

元素stu=(元素)迭代器。next();

列表属性attributes=stu。属性();

System.out.println('======获取属性值======');

对于(属性属性:属性){

系统。出去。println(属性。getvalue());

}

System.out.println('======遍历子节点======');

迭代器迭代器1=stu。元素迭代器();

while (iterator1.hasNext()){

元素stu child=(元素)迭代器1。next();

System.out.println('节点名:' stuChild.getName() ' -节点值:‘斯图孩子。getstring value());

}

}

}

}

总结

到此这篇关于Java 语言(一种计算机语言,尤用于创建网站)语言(一种计算机语言,尤用于创建网站)解析XML(4种方式)案例详解的文章就介绍到这了,更多相关Java 语言(一种计算机语言,尤用于创建网站)语言(一种计算机语言,尤用于创建网站)解析可扩展标记语言内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: