2012-06-19 54 views
2

我的任務是將模擬工具 的現有ASCII數據通信格式轉換爲XML格式。 XML或以前的ASCII數據包含數據庫信息和服務器在計算任務時需要的其他參數 。如何使用XML進行數據通信

使用JAXB,我設法填充所需的數據。當我編組時,我可以看到架構定義的XML結構 。

item item1 = new item(); 

Parameter par1 = new Par1(); 
par1.setName("DatabaseNr); 
par1.setContent("1500"); 

------Marshalling--------- 

Marshaller mar = context.createMarshaller(); 
mar.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); 

----Printing---- 

<Item > 
    <Parameter Name="databaseNr">1500</Parameter> 
    <Parameter Name="pressure"></Parameter> 
    <Parameter Name="time"></Parameter> 
</Item> 

我的問題是我怎麼能找到類似的數據庫數量的最重要的信息了非常大的 XML爲furthur步驟?這是我需要解析的地方嗎?感謝您的回答

+0

遵循JAXB模式,您應該解組XML輸出並使用模式派生類中的get方法來訪問您需要的數據。 –

回答

1

您似乎在使用具有非常通用的對象結構的JAXB (JSR-222)實現。這將是更容易瀏覽,如果你有一個更域具體型號如下所示:

項目

package forum11100410; 

import java.util.Date; 
import javax.xml.bind.annotation.*; 

@XmlRootElement 
@XmlType(propOrder={"databaseNr", "time", "pressure"}) 
public class Item { 

    private int databaseNr; 
    private int pressure; 
    private Date time; 

    public int getDatabaseNr() { 
     return databaseNr; 
    } 

    public void setDatabaseNr(int databaseNr) { 
     this.databaseNr = databaseNr; 
    } 

    public int getPressure() { 
     return pressure; 
    } 

    public void setPressure(int pressure) { 
     this.pressure = pressure; 
    } 

    public Date getTime() { 
     return time; 
    } 

    public void setTime(Date time) { 
     this.time = time; 
    } 

} 

演示

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<item> 
    <databaseNr>1500</databaseNr> 
    <pressure>1</pressure> 
    <time>2012-06-19T09:16:35.666-04:00</time> 
</item> 

輸出

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<item> 
    <databaseNr>1500</databaseNr> 
    <pressure>1</pressure> 
    <time>2012-06-19T09:16:35.666-04:00</time> 
</item> 
+0

這非常有幫助。感謝您的快速響應。我有一個錯誤,而我在JAXB生成的java類中添加了這個accesor方法。 「屬性dabaseNr存在但未在@ XmlType.propOrder中指定」。 – fitsena

+0

@fitsena - 我添加了一個'@ XmlType'註釋,其中'propOrder'設置爲我的示例。 –

+0

我應該解開它嗎?或使用一些XML閱讀器,如JDOM?手動添加方法後,編組會導致一些變形。因爲我從模式開始工作。 – fitsena

相關問題