2014-09-12 68 views
2

我得到了一个xml数据来解析java Object。但是这个带有记录的xml数据是第一次看到,任何机构都有一个想法来解析这个。用记录类型解析xml

<?xml version="1.0" encoding="UTF-8"?>  
<Coder version="1.0"> 
    <record javaclass="com.dd.Impl"> 
    <value name="fileName">load</value> 
    <record name="load" javaclass="com.wm.dd.Data"> 
     <value name="@version">1.0</value> 
     <record name="lm:Order" javaclass="com.dd.Data"> 
     <value name="@Id"></value> 
     <value name="@UID"></value> 
     <value name="@Count">2</value> 
     <value name="@Count">0</value> 
     <record name="lm:Master" javaclass="com.dd.Data"> 
      <value name="lm:ID">13</value> 
      <value name="lm:Number">382</value> 
     </record> 
     <array name="wo:Detail" type="record" depth="1"> 
      <record javaclass="com.dd.Data"> 
      <value name="lm:ID">13</value> 
      <value name="lm:Number">382</value> 
      <value name="lm:Code">CD3</value> 
      <value name="lm:Occurrence">1</value>    
      </record> 
      <record javaclass="com.dd.Data"> 
      <value name="lm:ID">13</value> 
      <value name="lm:Number">382</value> 
      <value name="lm:Code">CD2</value> 
      <value name="lm:Occurrence">1</value> 
      </record> 
      <record javaclass="com.dd.Data"> 
      <value name="lm:ID">13</value> 
      <value name="lm:Number">382</value> 
      <value name="lm:Code">CD1</value> 
      <value name="lm:Occurrence">1</value> 
      </record> 
     <record javaclass="com.dd.Data"> 
      <value name="lm:ID">13</value> 
      <value name="lm:Number">382</value> 
      <value name="lm:Code">CD4</value> 
      <value name="lm:Occurrence">1</value> 
      </record>    
     </array> 
</record> 
    </record> 
    <value name="folderPath">dir</value> 
    <value name="value">2014</value> 
    </record> 
</ICoder> 

通常用于从XML解析到Java对象通常使用JAXB代码。

JAXBContext jaxbContext; 
      try { 
       jaxbContext = JAXBContext.newInstance(OrderType .class); 
       Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); 
       OrderType order = (OrderType) jaxbUnmarshaller.unmarshal(file); 
       System.out.println(order); 
      } catch (JAXBException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
+1

什么是erro你得到了什么,你的问题是什么? – JWiley 2014-09-12 15:18:30

回答

1
  1. 如果你用maven可以生成从XSD的Java类

     <plugin> 
          <groupId>org.jvnet.jaxb2.maven2</groupId> 
          <artifactId>maven-jaxb2-plugin</artifactId> 
          <version>0.9.0</version> 
          <executions> 
           <execution> 
            <id>commun-generate</id> 
            <goals> 
             <goal>generate</goal> 
            </goals> 
            <configuration> 
             <generateDirectory>${basedir}/src/main/java/</generateDirectory> 
             <schemaDirectory>${basedir}/src/main/resources/schema/xsd</schemaDirectory> 
             <strict>true</strict> 
             <extension>true</extension> 
             <verbose>true</verbose> 
            </configuration> 
           </execution> 
          </executions> 
         </plugin> 
    

别人看到this话题,你应该生成你的XML see here

  • 的XSD从xsd生成类