示例#1
0
  /**
   * 封装在线商品列表
   *
   * @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;
  }