/** * 封装在线商品列表 * * @param xml * @return * @throws DocumentException */ public static List<Item> getItemElememt(String xml) throws Exception { List li = new ArrayList(); Document document = formatStr2Doc(xml); Element rootElt = document.getRootElement(); Element recommend = rootElt.element("ItemArray"); Iterator<Element> iter = recommend.elementIterator("Item"); while (iter.hasNext()) { Item item = new Item(); Element element = iter.next(); Element elflag = element.element("SellingStatus").element("ListingStatus"); if (elflag != null) { // 如查商品不在线,就不取在线商品 if (elflag.getText().equals("Active")) { } else { continue; } } item.setTitle(element.elementText("Title")); item.setCurrency(element.elementText("Currency")); item.setCountry(element.elementText("Country")); item.setSite(element.elementText("Site")); item.setPostalCode(element.elementText("PostalCode")); item.setLocation(element.elementText("Location")); item.setItemID(element.elementText("ItemID")); item.setHitCounter(element.elementText("HitCounter")); item.setAutoPay(element.elementText("AutoPay").equals("true") ? true : false); item.setGiftIcon(element.elementText("GiftIcon")); item.setListingDuration(element.elementText("ListingDuration")); item.setQuantity(Integer.parseInt(element.elementText("Quantity"))); item.setSKU(element.elementText("SKU")); StartPrice sp = new StartPrice(); sp.setValue(Double.parseDouble(element.element("SellingStatus").elementText("CurrentPrice"))); sp.setCurrencyID( element.element("SellingStatus").element("CurrentPrice").attributeValue("currencyID")); item.setStartPrice(sp); item.setConditionID( Integer.parseInt( element.elementText("ConditionID") == null ? "1000" : element.elementText("ConditionID"))); List lishipto = new ArrayList(); Iterator<Element> shipe = element.elementIterator("ShipToLocations"); while (shipe.hasNext()) { Element elstr = shipe.next(); lishipto.add(elstr.getText()); } item.setShipToLocations(lishipto); // 取得退货政策并封装 Element returne = element.element("ReturnPolicy"); ReturnPolicy rp = new ReturnPolicy(); rp.setRefundOption(returne.elementText("RefundOption")); rp.setReturnsWithinOption(returne.elementText("ReturnsWithinOption")); rp.setReturnsAcceptedOption(returne.elementText("ReturnsAcceptedOption")); rp.setDescription(returne.elementText("Description")); rp.setShippingCostPaidByOption(returne.elementText("ShippingCostPaidByOption")); item.setReturnPolicy(rp); // 买家要求 BuyerRequirementDetails brd = new BuyerRequirementDetails(); MaximumItemRequirements mirs = new MaximumItemRequirements(); Element buyere = element.element("BuyerRequirementDetails"); if (buyere != null) { Element maxiteme = buyere.element("MaximumItemRequirements"); if (maxiteme != null) { if (StringUtils.isNotEmpty(maxiteme.elementText("MaximumItemCount"))) { mirs.setMaximumItemCount(Integer.parseInt(maxiteme.elementText("MaximumItemCount"))); } if (StringUtils.isNotEmpty(maxiteme.elementText("MinimumFeedbackScore"))) { mirs.setMinimumFeedbackScore( Integer.parseInt(maxiteme.elementText("MinimumFeedbackScore"))); } brd.setMaximumItemRequirements(mirs); } Element maxUnpaid = buyere.element("MaximumUnpaidItemStrikesInfo"); if (maxUnpaid != null) { MaximumUnpaidItemStrikesInfo muis = new MaximumUnpaidItemStrikesInfo(); if (StringUtils.isNotEmpty(maxUnpaid.elementText("Count"))) { muis.setCount(Integer.getInteger(maxUnpaid.elementText("Count"))); } muis.setPeriod(maxUnpaid.elementText("Period")); brd.setMaximumUnpaidItemStrikesInfo(muis); } Element maxPolicy = buyere.element("MaximumBuyerPolicyViolations"); if (maxPolicy != null) { MaximumBuyerPolicyViolations mbpv = new MaximumBuyerPolicyViolations(); if (StringUtils.isNotEmpty(maxPolicy.elementText("Count"))) { mbpv.setCount(Integer.parseInt(maxPolicy.elementText("Count"))); } mbpv.setPeriod(maxPolicy.elementText("Period")); brd.setMaximumBuyerPolicyViolations(mbpv); } item.setBuyerRequirementDetails(brd); } li.add(item); } return li; }