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

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

使用 Jaxb 解組 MixedContent 返回帶有 null 變量的對(duì)象

使用 Jaxb 解組 MixedContent 返回帶有 null 變量的對(duì)象

達(dá)令說 2023-08-16 09:44:29
我想解組具有混合內(nèi)容的 XML 文件。其中用戶 bdoughan 定義了 3 個(gè)用例來處理混合內(nèi)容。第三個(gè)用例將標(biāo)簽之間的文本保留在單個(gè)字符串變量中,并將元素保存在列表中。這就是我想要的。不幸的是,我無法讓它工作,而且該線程很舊,可能已經(jīng)過時(shí)了。我已經(jīng)嘗試了用例#3 和對(duì)象列表以及我的參考類列表。我還嘗試了@XmlElement 和@XmlValue 注釋。我在 Java SE 版本 12.0.2 的 Maven Projec 中使用版本 2.3.1 中的 javax.xml.bind jaxb-api 和版本 2.3.1 中的 org.glassfish.jaxb jaxb-runtime。我測(cè)試過的示例 XML<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Date>? ? 2018.06.27? ? <reference id="AnyId1">? ? </reference></Date>我的班級(jí)代表@XmlRootElement(name="Date")public class TestPojo {@XmlMixedpublic String getTextContent() {? ? return textContent;}public void setTextContent(String textContent) {? ? this.textContent = textContent;}@XmlElementRef(name="reference", type = Reference.class)public List<Object> getRef() {? ? return ref;}public void setRef(List<Object> ref) {? ? this.ref = ref;}String textContent;List<Object> ref = new ArrayList<Object>();}? ??我希望 xml 被解組到 POJO 對(duì)象中并分配正確的值。解組后,對(duì)象變量(textContent 和 ref)為 null。
查看完整描述

1 回答

?
慕尼黑的夜晚無繁華

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

你可以試試這個(gè):


使用如下參考類,


@XmlAccessorType(XmlAccessType.FIELD)

public class Reference {

? ? @XmlAttribute

? ? private String id;

}

還有你的 Root 類,


@XmlRootElement(name="Date")

public class TestPojo {


? ? @XmlMixed

? ? @XmlAnyElement

? ? private List<Object> textContent;


? ? @XmlElement

? ? private Reference reference;


}

這將解組給您參考元素和列表中的其他所有內(nèi)容。


對(duì)于您的示例,它將有 2 個(gè)條目。日期值/文本以及制表符 (\t) 和換行符 (\n),以及另一個(gè)帶有換行符的條目。


所以你可以使用這個(gè)列表來處理內(nèi)容并使用你想要的。


如果有更清潔的解決方案,我很感興趣。干杯


更新回復(fù)評(píng)論:


為了更清楚地修復(fù)。我所做的是使用@XmlElement而不是@XmlElementRef單個(gè)引用而不是列表(因?yàn)檫@就是我在 xml 中看到的)。


我還添加了@XmlAnyElement混合內(nèi)容的注釋,使其成為一個(gè)列表。這就是修復(fù)它的原因。因此,堅(jiān)持你的課程,它看起來像下面這樣:


@XmlRootElement(name="Date")

public class TestPojo {


? ? List<Object> textContent;

? ? Reference ref;


? ? @XmlMixed

? ? @XmlAnyElement

? ? public List<Object> getTextContent() {

? ? ? ? return textContent;

? ? }


? ? public void setTextContent(List<Object> textContent) {

? ? ? ? this.textContent = textContent;

? ? }


? ? @XmlElement(name="reference")

? ? public Reference getRef() {

? ? ? ? return ref;

? ? }


? ? public void setRef(Reference ref) {

? ? ? ? this.ref = ref;

? ? }


}

@XmlAccessorType節(jié)省了我編寫 getter 和 setter 的時(shí)間。


查看完整回答
反對(duì) 回復(fù) 2023-08-16
  • 1 回答
  • 0 關(guān)注
  • 163 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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