XML是这样的
</MbfBody>
     <T_ZMDIFS079>
<GL_ACCT_CODE>11111</GL_ACCT_CODE>
<CO_CODE>22222</CO_CODE>
<PLAN_LEVEL>33333</PLAN_LEVEL>
<FIELD_STAT_GRP>44444</FIELD_STAT_GRP>
<RECONCILIATION_ACCT_FLAG>555555</RECONCILIATION_ACCT_FLAG>
<TAX_TYPE_CODE>666666</TAX_TYPE_CODE>
<CURRENCY_CODE>77777</CURRENCY_CODE>
<CASH_RCPT_DISBURSE_ACCT_FLAG>88888</CASH_RCPT_DISBURSE_ACCT_FLAG>
<AUTO_POST_FLAG>99999</AUTO_POST_FLAG>
<ACCT_ITEM_DISPLAY_FLAG>aaaaa</ACCT_ITEM_DISPLAY_FLAG>
<OPEN_ITEM_FLAG>bbbbb</OPEN_ITEM_FLAG>
<SEQ_CODE>bbbbb</SEQ_CODE>
<TAX_CODE_INPUT_FLAG>ccccc</TAX_CODE_INPUT_FLAG>
<CURRENCY_BALANCE_FLAG>dddddd</CURRENCY_BALANCE_FLAG>
    </T_ZMDIFS079>
</MbfBody>我写了几个类
public class MbfBody extends {
//对应<T_ZMDIFS079>标签
   private ArrayList<T_ZMDIFS079> T_ZMDIFS079;
}
public class T_ZMDIFS079{
private String GL_ACCT_CODE;
private String CO_CODE;
private String PLAN_LEVEL;
private String FIELD_STAT_GRP;
private String RECONCILIATION_ACCT_FLAG;
private String TAX_TYPE_CODE;
private String CURRENCY_CODE;
private String CASH_RCPT_DISBURSE_ACCT_FLAG;
private String AUTO_POST_FLAG;
private String ACCT_ITEM_DISPLAY_FLAG;
private String OPEN_ITEM_FLAG;
private String SEQ_CODE;
private String TAX_CODE_INPUT_FLAG;
private String CURRENCY_BALANCE_FLAG;
private String EXTENSION;
/**
*get/set方法就不贴上来了
*/
}然后用Xstream去解析:
XStream xstream = new XStream(new DomDriver());
xstream.alias("MbfBody", MbfBody.class);
xstream.alias("T_ZMDIFS079", T_ZMDIFS079.class);
xstream.addImplicitCollection(MbfBody.class, "T_ZMDIFS079");
MbfBody mbf = (MbfBody)xstream.fromXML(xml);
报错了:
Exception in thread "main" com.thoughtworks.xstream.converters.ConversionException: GL_ACCT_CODE : GL_ACCT_CODE : GL_ACCT_CODE : GL_ACCT_CODE
---- Debugging information ----
message             : GL_ACCT_CODE : GL_ACCT_CODE
cause-exception     : com.thoughtworks.xstream.mapper.CannotResolveClassException
cause-message       : GL_ACCT_CODE : GL_ACCT_CODE
class               : com.suning.epp.seam.server.MDM.accountsubject.xmlbean.MbfBody
required-type       : java.lang.Object
path                : /MbfBody/T_ZMDIFS079/GL_ACCT_CODE但是如果我仅仅用这个:
xstream.alias("T_ZMDIFS079", T_ZMDIFS079.class);
MbfBody mbf = (MbfBody)xstream.fromXML(xml);
去解析 <T_ZMDIFS079>
<GL_ACCT_CODE>11111</GL_ACCT_CODE>
<CO_CODE>22222</CO_CODE>
<PLAN_LEVEL>33333</PLAN_LEVEL>
<FIELD_STAT_GRP>44444</FIELD_STAT_GRP>
<RECONCILIATION_ACCT_FLAG>555555</RECONCILIATION_ACCT_FLAG>
<TAX_TYPE_CODE>666666</TAX_TYPE_CODE>
<CURRENCY_CODE>77777</CURRENCY_CODE>
<CASH_RCPT_DISBURSE_ACCT_FLAG>88888</CASH_RCPT_DISBURSE_ACCT_FLAG>
<AUTO_POST_FLAG>99999</AUTO_POST_FLAG>
<ACCT_ITEM_DISPLAY_FLAG>aaaaa</ACCT_ITEM_DISPLAY_FLAG>
<OPEN_ITEM_FLAG>bbbbb</OPEN_ITEM_FLAG>
<SEQ_CODE>bbbbb</SEQ_CODE>
<TAX_CODE_INPUT_FLAG>ccccc</TAX_CODE_INPUT_FLAG>
<CURRENCY_BALANCE_FLAG>dddddd</CURRENCY_BALANCE_FLAG>
    </T_ZMDIFS079是正确的,哪位大侠能帮忙看看是啥问题来着。