我正好需要一个将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工具类的测试结果