我有一个带属性的XML,但无法从XML移动到Object。
<SERV tipo='req_identif_tarjeta' code='' msg_code='' nserie='1'>
<TARJETAS>
<TARJETA ntarjeta='1044212619' tipo_tarj='T' msg_tipo_tarj='TITULAR' estado_tarj='A' msg_estado_tarj='ACTIVA' cliente_tar='9938' nombre_tar='ANDREA ANGELA ARAYA ALVAREZ' ncuenta='9931' estado_cta='A' msg_estado_cta='ACTIVA' cliente_cta='9938' nombre_cta='ANDREA ANGELA ARAYA ALVAREZ'>
</TARJETA>
<TARJETA ntarjeta=\"1021007693\" tipo_tarj=\"A\" msg_tipo_tarj=\"ADICIONAL\" estado_tarj=\"A\" msg_estado_tarj=\"ACTIVA\" cliente_tar=\"9938\" nombre_tar=\"ANDREA ANGELA ARAYA ALVAREZ\" ncuenta=\"636363631\" estado_cta=\"A\" msg_estado_cta=\"ACTIVA\" cliente_cta=\"636363634\" nombre_cta=\"BRUNO RANDON BALBOA BALBONTIN\">
</TARJETA>
</TARJETAS>
</SERV>
此XML表示为此POJO
public class SERV {
private String tipo;
private String code;
private String msg_code;
private String nserie;
private TARJETAS TARJETAS;
}
public class TARJETAS {
private ArrayList<TARJETA> TARJETA;
public ArrayList<TARJETA> getTARJETA() {
return TARJETA;
}
public void setTARJETA(ArrayList<TARJETA> tARJETA) {
TARJETA = tARJETA;
}
}
public class TARJETA {
private String ntarjeta;
private String tipo_tarj;
private String msg_tipo_tarj;
private String estado_tarj;
private String msg_estado_tarj;
private String cliente_tar;
private String nombre_tar;
private String ncuenta;
private String estadocta;
private String msg_estado_cta;
private String cliente_cta;
private String nombre_cta;
...
}
使用此代码我可以让XStream找到'tipo_tarj'属性,但我似乎无法找到TARJETA节点的文本值。
XStream xstream = new XStream();
xstream.aliasType("SERV", SERV.class);
xstream.useAttributeFor(SERV.class, "tipo");
xstream.useAttributeFor(SERV.class, "code");
xstream.useAttributeFor(SERV.class, "msg_code");
xstream.useAttributeFor(SERV.class, "nserie");
xstream.alias("TARJETAS", TARJETAS.class);
xstream.alias("TARJETA", TARJETA.class);
xstream.addImplicitCollection(TARJETAS.class, "TARJETA");
xstream.useAttributeFor(TARJETA.class, "tipo_tarj");
xstream.useAttributeFor(TARJETA.class, "ntarjeta");
xstream.useAttributeFor(TARJETA.class, "msg_tipo_tarj");
xstream.useAttributeFor(TARJETA.class, "estado_tarj");
xstream.useAttributeFor(TARJETA.class, "msg_estado_tarj");
xstream.useAttributeFor(TARJETA.class, "cliente_tar");
xstream.useAttributeFor(TARJETA.class, "nombre_tar");
xstream.useAttributeFor(TARJETA.class, "ncuenta");
xstream.useAttributeFor(TARJETA.class, "estadocta");
xstream.useAttributeFor(TARJETA.class, "msg_estado_cta");
xstream.useAttributeFor(TARJETA.class, "cliente_cta");
xstream.useAttributeFor(TARJETA.class, "nombre_cta");
答案没有属性“TARJETA”。为什么会这样?你应该怎么做才能出现“TARJETA”属性?
有人可以帮忙吗?