Dro*_*eer 9 java xml parsing pojo
如何以高效的方式解析和创建xml以下的java pojo?请建议任何有效的解析器.
XML格式是
<?xml version="1.0" encoding="utf-8"?>
<CCMainRootTag ID="12">
<Header TableName="TableName" TableVersion="12" TableID="12" CreatedDate="2013-02-09T15:35:33" CreatedByUserName="ABC" CreatedBySystem="ABC" />
<ClassPrimary ID="12" Code="Y" DescriptionDK="DK language " DescriptionUK="" DefDK="" DefUK="" IFDGUID="">
<ObjectClass ID="12" Code="YA" DescriptionDK="DK Language" DescriptionUK="" DefDK="" DefUK="" IFDGUID="">
<Synonym>
<Concept Description="Description" Language="DK" />
<Concept Description="" Language="UK" />
<Concept Description="Description" Language="DK" />
<Concept Description="" Language="UK" />
<Concept Description="Description" Language="DK" />
<Concept Description="" Language="UK" />
<Concept Description="Description" Language="DK" />
<Concept Description="" Language="UK" />
</Synonym>
</ObjectClass>
<ObjectClass ID="12" Code="YB" DescriptionDK="DK Language" DescriptionUK="" DefDK="" DefUK="" IFDGUID=""> </ObjectClass>
<ObjectClass ID="12" Code="YC" DescriptionDK="DK Language" DescriptionUK="" DefDK="" DefUK="" IFDGUID=""> </ObjectClass>
<ObjectClass ID="12" Code="YD" DescriptionDK="DK language" DescriptionUK="" DefDK="" DefUK="" IFDGUID=""> </ObjectClass>
</ClassPrimary>
</CCMainRootTag>
Run Code Online (Sandbox Code Playgroud)
我已经使用了这个链接,但它的性能很慢,并且有问题没有效果pojo.
我想解析器以有效的方式为我提供直接的java pojo.
对于那些寻找JAXB代码将xml转换为java对象的人:
//Convert xml to String first
Element partyLoaderRequest; // your xml data
String xmlString = new XMLOutputter().outputString(partyLoaderRequest);
InputStream is = new ByteArrayInputStream(xmlString.getBytes());
DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document document = docBuilder.parse(is);
org.w3c.dom.Element varElement = document.getDocumentElement();
JAXBContext context = JAXBContext.newInstance(Person.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
JAXBElement<Person> loader = unmarshaller.unmarshal(varElement, Person.class);
Person inputFromXml = loader.getValue();
Run Code Online (Sandbox Code Playgroud)
而Person有适当的XML注释:
@XmlRootElement(name="Person")
public class CimbWlAdminUserAmendInput {
@XmlElement(name="companyName",required=true,nillable=false)
private String companyName;
...
//setters getters
@XmlTransient
public String getCompanyName() {
return companyName;
}
public void setCompanyName(String companyName) {
this.companyName = companyName;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42115 次 |
| 最近记录: |