亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 JAXB 中,如何將節點值設置為字符串字段的屬性值?

在 JAXB 中,如何將節點值設置為字符串字段的屬性值?

千萬里不及你 2023-07-28 09:41:53
我需要將這種特定類型的 xml 消息發送到 Web 服務;<Personel>    <name value="HelpMe"/>    <surname value="Please"/></Personel>我的代碼是這樣的;@XmlRootElement(name = "Personel")@XmlAccessorType(XmlAccessType.FIELD)public class Personel{    @XmlElement(name = "name")    String name;    @XmlElement(name = "surname")    String surname;}但這段代碼生成的 xml 類似;<Personel>    <name>HelpMe<name/>    <surname>Please<surname/></Personel>如果不創建具有名為“value”的屬性字段的名稱和姓氏類,我找不到正確的方法來執行此操作。
查看完整描述

2 回答

?
POPMUISE

TA貢獻1765條經驗 獲得超5個贊

我發現 jaxb 的 moxy 實現作為解決方案。它提供了給出默認屬性鍵的能力。


@XmlRootElement(name = "Personel")

@XmlAccessorType(XmlAccessType.FIELD)

public class Personel{


? ? @XmlPath("name/@value")

? ? String name;


? ? @XmlPath("surname/@value")

? ? String surname;

}

所以上面的代碼根據我的需要生成了以下 xml,


<Personel>

? ? <name value="HelpMe"/>

? ? <surname value="Please"/>

</Personel>


查看完整回答
反對 回復 2023-07-28
?
翻翻過去那場雪

TA貢獻2065條經驗 獲得超14個贊

如果您需要以下格式。


<Personel>

    <name value="HelpMe"/>

    <surname value="Please"/>

</Personel>

創建 PersonelName 和 PersonelSurname,然后將這些類用作 Personel 類中的 XmlElement。


@XmlAccessorType(XmlAccessType.FIELD)

public class PerosonelName {


   @XmlValue

    String value;


    @XmlElement(name = "name")

    String name;


}


@XmlAccessorType(XmlAccessType.FIELD)

public class PersonelSurname {


   @XmlValue

    String value;


    @XmlElement(name = "surname")

    String surname;


}



@XmlRootElement(name = "Personel")

@XmlAccessorType(XmlAccessType.FIELD)

public class Personel{


    @XmlElement(name = "name")

    String PerosonelName ;


    @XmlElement(name = "surname")

    String PersonelSurname ;

}


查看完整回答
反對 回復 2023-07-28
  • 2 回答
  • 0 關注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號