将 HTML XML 映射到 POJO 的最佳方法

best approach to map HTML XML to POJO

我正在尝试为 html xml 文件设置映射方案,我真的在寻求建议。我不熟悉解组 xml 内容。对我来说,似乎每个部分都需要 class。我希望有更好的方法。我的文件看起来像这样。我刚刚开始尝试了解如何解决这个问题,我的头在旋转:)。我正在查看 HEAD 的 class,HEADRTR 的 class,FDE 的 class 和 MM 部分的 class。但这似乎会变得笨拙和繁琐,因为有很多列表地图。机器生成状态消息的真实示例。 ???谢谢你的建议。需要的部分是HEAD部分的内容,HEADRTR部分的内容以及FDE和MM部分的内容。

A   008812111835040016XXXXXXXXXX
<RTR>
<HEAD>
<IDCMS pn="ABF31A6FNCL0004" vers="4.0"/>
<DA>2018/12/11 00:15:42</DA>
<ACD MSN="0160" tail="N504DN" type="A350-900"/>
<TID>C00000023</TID>
</HEAD>
<HEADRTR>
<FROM>ZSPD</FROM>
<TO>KLAX</TO>
<FNBR>DAL88     </FNBR>
</HEADRTR>
<ITD>
<CB>A</CB>
<FDE disp="n" dm="y">
<MC>3031H050</MC>
<MD>A-ICE // &gt; A-ICE SIDESLIP PROBE 2 HEATG</MD>
<DA>2018/12/11 00:12:42</DA>
<CDA>2018/12/11 00:14:17</CDA>
<FPH>8</FPH>
<LAB>1</LAB>
</FDE>
<MM fo="A" occ="5">
<MC>3413F7EV</MC>
<MD>PROBE-SSA,2(11FP2)</MD>
<DA>2018/12/11 00:08:43</DA>
<ATA>3413</ATA>
<FPH>8</FPH>
<FCL>1</FCL>
<PRIO>high</PRIO>
<STA>1</STA>
<SYS name="ADR2" bite_id="3" side="2"/>
</MM>
</ITD>
</RTR>

这是开始,头class,想知道你是否可以告诉我我是否走在正确的道路上。这是 the/a 处理属性和元素的正确方法吗?

@XmlRootElement( name = "HEAD" )
@XmlAccessorType(XmlAccessType.FIELD)
public class Head {

String pn;
String vers;
String da;
String msn;
String tail;
String type;
String tid;

public String getPn() {
    return pn;
}
public String getVers() {
    return vers;
}
public String getDa() {
    return da;
}
public String getMsn() {
    return msn;
}
public String getTail() {
    return tail;
}
public String getType() {
    return type;
}
public String getTid() {
    return tid;
}

@XmlAttribute(name="pn")
public void setPn(String pn) {
    this.pn = pn;
}
@XmlAttribute(name="vers")
public void setVers(String vers) {
    this.vers = vers;
}
@@XmlElement(name="da")
public void setDa(String da) {
    this.da = da;
}
@XmlAttribute(name="msn")
public void setMsn(String msn) {
    this.pn = pn;
}
@XmlAttribute(name="tail")
public void setTail(String tail) {
    this.tail = tail;
}
@XmlAttribute(name="type")
public void setPn(String type) {
    this.type = type;
}
@XmlElement(name="tid")
public void setDa(String tid) {
    this.tid = tid;
}

}

不完全是,您的模型对于所表示的结构来说太扁平了。

<HEAD>
    <IDCMS pn="ABF31A6FNCL0004" vers="4.0"/>
    <DA>2018/12/11 00:15:42</DA>
    <ACD MSN="0160" tail="N504DN" type="A350-900"/>
    <TID>C00000023</TID>
</HEAD>

每个子元素需要定义自己的子元素and/or属性:

@XmlRootElement(name = "HEAD")
public class Head { 
    @XmlElement(name = "IDCMS") private Idcms idcms;
    @XmlElement(name = "DA") private String da;
    @XmlElement(name = "ACD") private Acd acd;
    @XmlElement(name = "TID") private String tid;
    ... getters/setters
}

public class Idcms { 
    @XmlAttribute(name = "pn") private String pn;
    @XmlAttribute(name = "vers") private String vers;
    ... getters/setters
}

public class Acd {
    @XmlAttribute(name = "MSN") private String msn;
    @XmlAttribute(name = "tail") private String tail;
    @XmlAttribute(name = "type") private String type;
    ... getters/setters
}