首页 > 编程知识 正文

不使用注解把bean转成xml,java类分解器

时间:2023-05-04 05:45:16 阅读:151938 作者:3281

我正好需要一个将xml转换为bean的工具和一个xml分析工具。 在网上实现了很多。 你可以自己制作轮子,直接复制和利用一系列的过程。 一分钟内实现转换和分析。 (xml转换是使用idea实现的。 eclipse也有工具。 检索的话就不在这里说明了。 本文可转载,只要显示出处即可。

1.xml到xsd

1.1示例XML(Persons.XML ) )。

中国

地球

不可用性

1.2利用idea在persons.xsd上生成persons.xml

1.2.1首先打开persons.xml文件,然后选择Generate XSD Schema from XML File…

1.2.2生成persons.xsd设置

请注意,Design type选项必须选择local elements/types,以确保xsd在转换bean时属性一致。

1.2.3生成persons.xsd文件

预览生成的persons.xsd文件

2 .从xsd到JavaBean

2.1person.xsdidea导航栏[ tool ] [ JAXB ] generatejavacodefromxmlschemausingjaxb…

2.2从person.xsd设置bean

属性Package Prefix设置所需bean对象类的资源库路径。 其他属性不需要调整。

2.3生成bean

设置完成后,persons.xml转换bean将生成以下结构的java类

2.4备注

如果在生成后发现需要修改参数,则只要修改persons.xml文件并再次运行该流程,相关的persons.xsd和生成的bean类就会自动复盖更新。

3.xml解析实现代码

可以直接贴上代码,直接复制使用。

3.1 XmlParser工具类实现

package util.xml;

import util.bean.Person;

import util.bean.Persons;

import javax.XML.bind.JAXB context;

import javax.XML.bind.un marshaller;

import java.io.*;

import java.util.List;

//*

* xml工具类

*

* @author sssuperMario

* @date 2020/08/28

*/

公共类XML parser {

publicstaticvoidmain (字符串[ ] args ) {

persons persons=xmlto bean (new file (/idea projects/persons.XML ),Persons.class );

system.out.println (person feature [ source ] : ) Persons.getfeature ().get source.getvalue ) );

listpersonlist=persons.get person (;

人员人员3360人员列表{

system.out.println (personid : ) Person.getid ) ) ((trace: ) )。

Person.getraces(((thome: ) )。

person.getLocation ().getHome );

}

}

//*

* xml to bean

* @param xmlFile

* @param beanClass

* @param

* @return

*/

publicstatictxmltobean (file xmlfile,Class beanClass ) {

if(xmlfile.length ()==0) ) )

thrownewruntimeexception (' xmlfilecontentlengthisblank.' );

}

bufferedreaderbufferedreader=null;

filereader filereader=空;

字符串缓冲区content=new string buffer (;

try {

filereader=new filereader (xmlfile;

buffered reader=newbufferedreader;

字符串行;

while ((line=buffered reader.readline ) )!=null ) {

content.append(line;

}

}catch(exceptione ) {

thrownewruntimeexception (xmlfilereaderror.',e );

} finally {

try {

fileReader.close (;

bufferedReader.close (;

}catch(ioexceptione ) {

e .打印堆栈跟踪(;

}

}

returnxmltobean (content.tostring ),beanClass );

}

//*

* xml to bean

* @param xmlContent

* @param beanClass

* @param

* @return

*/

publicstatictxmltobean (stringxmlcontent,Class beanClass ) {

reader reader=空;

try {

jaxbcontextcontext=JAXB context.new instance (bean class;

unmarshallerunmarshaller=context.createunmarshaller (;

reader=new string reader (XML content;

return(t ) unmarshaller.unmarshal ) reader;

}catch(exceptione ) {

thrownewruntimeexception (XML parse error.',e );

} finally {

try {

reader.close (;

}catch(ioexceptione ) {

e .打印堆栈跟踪(;

}

}

}

}

3.2运行XML parser工具类的测试结果

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。