Java 解组对象数组和数组
嗨,我对XML和Web服务非常陌生,但我从一个SOAP Web服务接收XML,看起来有点像这样:Java 解组对象数组和数组,java,xml-serialization,jaxb,Java,Xml Serialization,Jaxb,嗨,我对XML和Web服务非常陌生,但我从一个SOAP Web服务接收XML,看起来有点像这样: <?xml version="1.0" encoding="UTF-8" standalone="no"?> <ArrayOfCreditCardSettlement xmlns="http://schemas.datacontract.org/2004/07/Borgun.Library.Common"> <ns0:CreditCardSettle
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<ArrayOfCreditCardSettlement xmlns="http://schemas.datacontract.org/2004/07/Borgun.Library.Common">
<ns0:CreditCardSettlement xmlns="http://Borgun.Services.Gateway/2010/04/Settlement" xmlns:a="http://schemas.datacontract.org/2004/07/Borgun.Library.Common" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:msgns="http://Borgun.Services.Gateway/2010/04/Settlement" xmlns:ns0="http://schemas.datacontract.org/2004/07/Borgun.Library.Common" xmlns:ns1="http://j2ee.netbeans.org/wsdl/BorgunTestBPEL/entrypoint_getSettlements">
<a:amexAmount>**</a:amexAmount>
<a:amount>**</a:amount>
<a:batches>
<a:CreditCardBatch>
<a:batchdate>***</a:batchdate>
<a:batchnumber>***</a:batchnumber>
<a:currencyCode>***</a:currencyCode>
<a:merchantnumber>***</a:merchantnumber>
<a:settlementRunNumber>***</a:settlementRunNumber>
<a:settlementdate>***</a:settlementdate>
<a:slips>*</a:slips>
<a:sum>***</a:sum>
</a:CreditCardBatch>
.
.
more batches
<a:deductionItems>
<a:CreditCardSettlementDeduction>
<a:amount>***</a:amount>
<a:code>**</a:code>
<a:currencyCode>**</a:currencyCode>
<a:merchantnumber>***</a:merchantnumber>
<a:settlementrunnumber>***</a:settlementrunnumber>
<a:text>***</a:text>
</a:CreditCardSettlementDeduction>
.
. more deductionitems
</ns0:CreditCardSettlement>
.
. more Settlements
绑定已生成,并具有“ArrayOfCreditCardConsolution”、“CreditCardConsolution”和objectfactory等
现在我唯一能做的就是投给JAXBElement
即`JAXBElement a=(JAXBElement)unmarshaller.unmarshal(新文件(“…response3.xml”)
也许这就是我应该拥有的,但是从那以后,我应该如何使用这个呢
我想使用这个数组/列表,但我不知道下一步该怎么做
其他信息:
绑定是从xsd生成的
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ArrayOfCreditCardSettlement", propOrder = {
"creditCardSettlement"})
public class ArrayOfCreditCardSettlement {
@XmlElement(name = "CreditCardSettlement", nillable = true)
protected List<CreditCardSettlement> creditCardSettlement;
public List<CreditCardSettlement> getCreditCardSettlement() {
if (creditCardSettlement == null) {
creditCardSettlement = new ArrayList<CreditCardSettlement>();
}
return this.creditCardSettlement;
}
@xmlacessortype(xmlacesstype.FIELD)
@XmlType(name=“arrayofcreditcardcolution”,比例器={
“信用卡结算”})
公共类ArrayOfCreditCardResolution{
@xmlement(name=“creditcardcolution”,nillable=true)
受保护的名单;
公共列表getCreditCardSettlement(){
如果(creditCardSettlement==null){
CreditCardResolution=新建ArrayList();
}
返回此。信用卡结算;
}
类似于CreditCardSettlement类
对象工厂有XMLElementDecl显式地命名名称空间,等等
CreditCardSettlementContainer ccsc = (CreditCardSettlementContainer) unmarshaller.unmarshal(yourFile);
另一方面,如果您刚刚开始使用,我强烈建议它更易于理解和使用,更不用说更灵活。JAXBElement有一个值,它应该是一个
arrayofcreditcardcolution
对象
下面是一个代码示例,可以提供一些提示:
非常感谢,这个有价值的东西完全避开了我的视线谢谢你的链接,我正试图直接解组到目标对象中,但不管出于什么原因,它都不起作用。我没有选择SimpleXML的奢侈,但感谢你的回复
CreditCardSettlementContainer ccsc = (CreditCardSettlementContainer) unmarshaller.unmarshal(yourFile);