Java如何解析xml报文,java如何解析json数据
写爬虫互联网协议(互联网协议)被封了怎么解决?立即使用
DOM方式解析XML
师解析是将可扩展标记语言文件全部载入到内存,组装成一颗数字正射影像图树,然后通过节点以及节点之间的关系来解析可扩展标记语言文件,与平台无关,java提供的一种基础的解析可扩展置标语言文件的API,理解较简单,但是由于整个文档都需要载入内存,不适用于文档较大时。 (推荐学习:java课程)
SAX方式解析XML
基于事件驱动,逐条解析,适用于只处理可扩展标记语言数据,不易编码,而且很难同时访问同一个文档中的多处不同数据
JDOM方式解析XML
简化与可扩展置标语言的交互并且比使用数字正射影像图实现更快,仅使用具体类而不使用接口因此简化了API,并且易于使用
DOM4j方式解析XML
JDOM的一种智能分支,功能较强大,建议熟练使用
xml文件
?可扩展标记语言版本=1.0 编码=utf-8 ?
班级
学生
名字cxx 1/名字
姓氏鲍勃1/姓氏
昵称明星1/昵称
马克85/马克
/学生
学生编号=493
名字cxx 2/名字
姓氏鲍勃2/姓氏
昵称明星2/昵称
马克85/马克
/学生
学生名册编号=593
名字cxx 3/名字
姓氏鲍勃3/姓氏
昵称明星3/昵称
马克85/马克
/学生
/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();
}
}
}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.获取解析器实例
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(值);
}
}
}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======);
}
}
}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());
}
}
}
}以上就是爪哇岛如何解析可扩展置标语言的详细内容,更多请关注我们其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。