第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

將復(fù)雜的 XML 轉(zhuǎn)換為 Java 對(duì)象

將復(fù)雜的 XML 轉(zhuǎn)換為 Java 對(duì)象

慕俠2389804 2022-07-27 21:25:15
我有一個(gè) xml,我想將由特定標(biāo)簽的子級(jí)形成的子 xml 保存到一個(gè)字符串中。這是一個(gè) xml 示例:    <?xml version="1.0" encoding="UTF-8" standalone="yes"?><SampleDTO>    <id>1</id>    <someList>        <someObject>            <amount>32</amount>            <id>1</id>            <someDescription>I am a description</someDescription>        </someObject>        <someObject>            <amount>66</amount>            <id>2</id>            <someDescription>I am another description</someDescription>        </someObject>        <someObject>            <amount>78</amount>            <id>13</id>            <someDescription>Guess what? I am a description</someDescription>        </someObject>    </someList>    <otherList>        <otherObject>            <flag>true</flag>            <id>1</id>            <otherDescription>Oh nice, a description</otherDescription>        </otherObject>    </otherList></SampleDTO>我想通過(guò)例如“someList”將子xml元素和值保存到字符串中,因?yàn)榻酉聛?lái)我將它反序列化為java對(duì)象
查看完整描述

3 回答

?
喵喵時(shí)光機(jī)

TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個(gè)贊

使用 JAXB 解組器將 xml 文檔轉(zhuǎn)換為 java 對(duì)象。首先將 JAXB 依賴(lài)項(xiàng)添加到項(xiàng)目的類(lèi)路徑中。了解更多信息

SampleDTO.java

@XmlRootElement

public class SampleDTO {

    private String id;

    private List<SomeList> someList;

    private List<OtherList> otherList;


    @XmlElement

    public String getId() {

        return id;

    }

    public void setId(String id) {

        this.id = id;

    }

    @XmlElement

    public List<SomeList> getSomeList() {

        return someList;

    }

    public void setSomeList(List<SomeList> someList) {

        this.someList = someList;

    }

    @XmlElement

    public List<OtherList> getOtherList() {

        return otherList;

    }

    public void setOtherList(List<OtherList> otherList) {

        this.otherList = otherList;

    }

}

SomeList.java


@XmlRootElement

public class SomeList {

    private List<SomeObject> someObject;


    @XmlElement

    public List<SomeObject> getSomeObject() {

        return someObject;

    }

    public void setSomeObject(List<SomeObject> someObject) {

        this.someObject = someObject;

    }

}

OtherList.java


@XmlRootElement

public class OtherList {

    private List<OtherObject> otherObject;


    @XmlElement

    public List<OtherObject> getOtherObject() {

        return otherObject;

    }

    public void setOtherObject(List<OtherObject> otherObject) {

        this.otherObject = otherObject;

    }

}

SomeObject.java


@XmlRootElement

public class SomeObject {

    private String amount;

    private String id;

    private String someDescription;


    @XmlElement

    public String getAmount() {

        return amount;

    }

    public void setAmount(String amount) {

        this.amount = amount;

    }

    @XmlElement

    public String getId() {

        return id;

    }

    public void setId(String id) {

        this.id = id;

    }

    @XmlElement

    public String getSomeDescription() {

        return someDescription;

    }

    public void setSomeDescription(String someDescription) {

        this.someDescription = someDescription;

    }

}

OtherObject.java


@XmlRootElement

public class OtherObject {

    private String flag;

    private String id;

    private String otherDescription;


    @XmlElement

    public String getFlag() {

        return flag;

    }

    public void setFlag(String flag) {

        this.flag = flag;

    }

    @XmlElement

    public String getId() {

        return id;

    }

    public void setId(String id) {

        this.id = id;

    }

    @XmlElement

    public String getOtherDescription() {

        return otherDescription;

    }

    public void setOtherDescription(String otherDescription) {

        this.otherDescription = otherDescription;

    }

}

使用 JAXB 解組


public class Main {

    public static void main(String[] args) {  

     try {

        File file = new File("file.xml");  

        JAXBContext jaxbContext = JAXBContext.newInstance(SampleDTO.class);  

        Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();  

        SampleDTO sampleDTO= (SampleDTO) jaxbUnmarshaller.unmarshal(file);  

      } catch (JAXBException e) {  

        e.printStackTrace();  

      }  

    }  

}


查看完整回答
反對(duì) 回復(fù) 2022-07-27
?
慕村225694

TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊

有許多可用的開(kāi)源 XML 處理包。我喜歡杰克遜。這是關(guān)于 Jackson XML 的 Baeldung 文章的鏈接

總結(jié)是這樣的:

  1. 將 Jackson 依賴(lài)項(xiàng)添加到您的 POM。

  2. 創(chuàng)建一個(gè)代表您的 xml 結(jié)構(gòu)的對(duì)象結(jié)構(gòu)。

  3. 創(chuàng)建一個(gè) XmlMapper。

  4. 使用 XmlMapper。


查看完整回答
反對(duì) 回復(fù) 2022-07-27
?
慕標(biāo)5832272

TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個(gè)贊

你的 java 類(lèi)/對(duì)象應(yīng)該至少有這 3 個(gè)實(shí)例變量:


private int amount

private int id

private String description

然后使用一些 xml 解析庫(kù)(例如jdom2),并且對(duì)于您迭代的每個(gè)<someObject>標(biāo)簽,初始化您的類(lèi)的一個(gè)新對(duì)象并為其分配從 xml 解析的值(數(shù)量/id/描述),并添加每個(gè)新創(chuàng)建的對(duì)象在列表或數(shù)組等中。


查看完整回答
反對(duì) 回復(fù) 2022-07-27
  • 3 回答
  • 0 關(guān)注
  • 478 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)