Posted a direct business code, which is the resolution request xml format string returned to the next takes a value which facilitates use.
@RequestMapping(value="/search",produces = {"text/html;charset=utf-8"}) public String searchGoods(@RequestParam(value="itemBarCode", required = false)String itemBarCode, @RequestParam(value="typenumber", required = false)String typenumber, @RequestParam(value="mts", required = false)String mts, @RequestParam(value="mte", required = false)String mte, @RequestParam(value="ocdsupport", required = false)String ocdsupport, @RequestParam(value="yunfeimoban", required = false)String yunfeimoban, @RequestParam(value="goodsname", required = false)String goodsname, @RequestParam(value="goodstate", required = false)String goodstate, @RequestParam(value="kucun2", required = false)String kucun2, @RequestParam(value="kucun1", required = false)String kucun1, @RequestParam(value="barcode", required = false)String barcode, @RequestParam(value="type", required = false)String type, @RequestParam(value="innertype", required = false)String innertype, @RequestParam(value="storenumber", required = false)String storenumber, @RequestParam(value="namelabel "required = false) String namelabel, @RequestParam(value="checkstate", required = false)String checkstate, @RequestParam(value="storename", required = false)String storename, @RequestParam(value="pageInfo", required = false)String pageInfo) throws ApiException { StoreKeyInfo storeKeyInfo = storeKeyInfoService.getStoreKeyInfo(storename); Map<Integer,String> maps = new HashMap<Integer,String>(); SdkClient sdkClient = null; if(storeKeyInfo!=null) { String appKey = storeKeyInfo.getAppKey(); String appSecret = storeKeyInfo.getAppSecret(); String session = storeKeyInfo.getAuthenCode(); sdkClient = new SdkClient(appKey, appSecret, session, version,format, connectTimeout, ReadTimeout, needEnableParser, needCheckRequest); } the else { System.out.println ( "Can not find the store: the name of the shop is empty"); } ItemsListGet itemsListGet = new new ItemsListGet (); // start set query conditions, some parameters is set, no not disposed IF (typenumber = null && typenumber.equals ( "!!")) { itemsListGet.setItm (typenumber); } (!! = null && mts.equals MTS (IF "")) { itemsListGet .setMts (MTS); } IF (! = null && mte.equals MTE ( "!")) { itemsListGet.setMte (MTE); } IF (ocdsupport ocdsupport.equals = null && (!! "")){ itemsListGet.setIs_cod(ocdsupport); } if(goodsname!=null && !goodsname.equals("")){ itemsListGet.setName(goodsname); } if(goodstate!=null && !goodstate.equals("")){ itemsListGet.setIts(goodstate); } if(kucun1!=null && !kucun1.equals("")){ itemsListGet.setSlv(kucun1); } if(kucun2!=null && !kucun2.equals("")){ itemsListGet.setShv(kucun2); } if(barcode!=null && !barcode.equals("")){ itemsListGet.setBar_code(barcode); } if(innertype!=null && !innertype.equals("")){ itemsListGet.setSc(innertype); } if(namelabel!=null && !namelabel.equals("")){ itemsListGet.setItb(namelabel); } if(checkstate!=null && !checkstate.equals("")){ itemsListGet.setDatatype(checkstate); } ItemsListGetRequest itemsListGetRequest=new ItemsListGetRequest(); itemsListGetRequest.setItemsListGet(itemsListGet); ItemsListGetResponse result=sdkClient.excute(itemsListGetRequest); String[] ids = null; String[] updatetimeStrs = null; String[] datatypeStrs = null; String pageSize = null; int index11 = 0; int index22 = 0; System.out.println("返回的数据是:"+result.getBody()); index11 = result.getBody().indexOf("<pageTotal><![CDATA["); = result.getBody index22 () the indexOf ( "]]> </ pageTotal>");. the pageSize = result.getBody () the substring (index11 + 20 is, index22);. Page Integer.valueOf = int (pageSize); System.out.println ( "total page" + pageSize); // page 10 in the Page Control, click on the other pages 11, only called if (page> = 1) { =. 1 Page; } // if no click page, according to the query IF (! = null && PageInfo pageInfo.equals ( "") && pageInfo.equals ( "0")!) { int InsertIndex = 0; // if no incoming PageInfo, the default first page. for (int. 1 = pageIndex; pageIndex <= Page; pageIndex ++) { itemsListGet.setP (String.valueOf (pageIndex)); itemsListGetRequest.setItemsListGet (itemsListGet); Result = sdkClient.excute (itemsListGetRequest); System.out.println ( " int count = countStr(result.getBody(), "<itemID><![CDATA["); ids= new String[count]; updatetimeStrs =new String[count]; datatypeStrs = new String[count]; int[] indexbegin = new int[1000000]; int[] indexbegin2 = new int[1000000]; int[] indexbegin3 = new int[1000000]; for (int i = 1; i <= count; i++) { indexbegin[i - 1] = getIndex(result.getBody(), i, "<itemID>"); indexbegin2[i - 1] = getIndex(result.getBody(), i, "<updateTime>"); indexbegin3[i - 1] = getIndex(result.getBody(), i, "<datatype>"); } int[] indexend = new int[1000000]; int[] indexend2 = new int[1000000]; int[] indexend3 = new int[1000000]; for (int i = 1; i <= count; i++) { indexend[i - 1] = getIndex(result.getBody(), i, "</itemID>"); indexend2[i - 1] = getIndex(result.getBody(), i, "</updateTime>"); indexend3[i - 1] = getIndex(result.getBody(), i, "</datatype>"); } for (; insertIndex - (pageindex - 1) * 20 < count; insertIndex++) { int index1 = 0; int index2 = 0; int index41 = 0; int index42 = 0; int index31 = 0; int index32 = 0; index1 = indexbegin[insertIndex - (pageindex - 1) * 20]; index2 = indexend[insertIndex - (pageindex - 1) * 20]; ids[insertIndex] = result.getBody().substring(index1 + 17, index2 - 3); index41 = indexbegin2[insertIndex - (pageindex - 1) * 20]; index42 = indexend2[insertIndex - (pageindex - 1) * 20]; updatetimeStrs[insertIndex] = result.getBody().substring(index41 + 21, index42 - 3); index31 = indexbegin3[insertIndex - (pageindex - 1) * 20]; index32 = indexend3[insertIndex - (pageindex - 1) * 20]; datatypeStrs [InsertIndex] = result.getBody () the substring (+ index31. 19, index32 -. 3);. } } !} the else IF (PageInfo = null && pageInfo.equals ( "") && pageInfo.equals (! "0"! )) { // If there is to click on the page to query based on a single page page = Integer.valueOf (PageInfo); itemsListGet.setP (String.valueOf (page)); itemsListGetRequest = new new ItemsListGetRequest (); itemsListGetRequest.setItemsListGet (itemsListGet); = sdkClient.excute Result (itemsListGetRequest); updatetimeStrs = new String[page * 20]; datatypeStrs = new new String [Page 20 is *]; System.out.println ( "returned message" + result.getBody ()); int count = countStr(result.getBody(),"<itemID><![CDATA["); ids = new String[count]; //查询具体某一页的数据 int[] indexbegin = new int[1000000]; int[] indexbegin22 = new int[1000000]; int[] indexbegin33 = new int[1000000]; for(int i=1;i<=count;i++){ indexbegin[i-1] = getIndex(result.getBody(),i,"<itemID>"); indexbegin22[i - 1] = getIndex(result.getBody(), i, "<updateTime>"); indexbegin33[i - 1] = getIndex(result.getBody(), i, "<datatype>"); } int[] indexend = new int[1000000]; int[] indexend22 = new int[1000000]; int[] indexend33 = new int[1000000]; for(int i=1;i<=count;i++){ indexend[i-1] = getIndex(result.getBody(),i,"</itemID>"); indexend22[i - 1] = getIndex(result.getBody(), i, "</updateTime>"); indexend33[i - 1] = getIndex(result.getBody(), i, "</datatype>"); } for(int i=0;i<count;i++){ int index1 = 0; int index2 = 0; int index41 = 0; int index42 = 0; int index31 = 0; int index32 = 0; index1 = indexbegin[i]; index2 = indexend[i]; ids[i] = result.getBody().substring(index1+17,index2-3); index41 = indexbegin22[i]; index42 = indexend22[i]; updatetimeStrs[i] = result.getBody().substring(index41 + 21, index42 - 3); index31 = indexbegin33[i]; index32 = indexend33[i]; datatypeStrs[i] = result.getBody().substring(index31 + 19, index32 - 3); } } String returnstr = ""; //存储ids.length条信息 String[] strs = new String[ids.length]; List<ItemVO> listVO = new ArrayList<ItemVO>(); System.out.println("id个数"+ids.length); for (int I = 0; I <ids.length; I ++) { IF (!! null && IDS [I] IDS = [I] .equals ( "undefined")) { String ID = IDS [I]; // The Id get merchandise item information, including the // item ID Image product name store name Dangdang stock price state audit status was last modified itemVO itemVO = new new itemVO (); // Approval status and last modified time to get ItemList itemVO.setCheckstate ( datatypeStrs [I]); itemVO.setLastupdatetime (updatetimeStrs [I]); itemVO.setStorename (StoreName); // image Item name product ID shop name coupons stock price to the interface state acquiring Item ItemGetRequest new new ItemGetRequest Request = (); ItemGet get = new ItemGet (); get.setIt (the above mentioned id); request.setItemsGet (gET); ItemGetResponse re = sdkClient.excute(request); //开始解析单个的商品 String itemInfoStr = re.getBody(); System.out.println("查询到的商品返回信息"+re.getBody()); String itemId = getAttribute(itemInfoStr, "<itemID>", "</itemID>"); itemVO.setStoreId(itemId); String itemName = getAttribute(itemInfoStr, "<itemName>", "</itemName>"); itemVO.setGoodsname(itemName); String unitPrice = getAttribute(itemInfoStr, "<unitPrice>", "</unitPrice>"); itemVO.setUnitPrice(Float.parseFloat(unitPrice)); String stockCount = getAttribute(itemInfoStr, "<stockCount>", "</stockCount>"); itemVO.setStockCount(Integer.parseInt(stockCount)); String itemState = getAttribute(itemInfoStr, "<itemState>", "</itemState>"); itemVO.setGoodstate(itemState); //解析一下图片 int countpic = countStr(re.getBody(), "<pic"); String pistrs = ""; int[] beginpic = new int[countpic]; int[] endpic = new int[countpic]; for (int h = 1; h <= countpic; h++) { beginpic[h - 1] = getIndex(re.getBody(), h, "<pic"); endpic[h - 1] = getIndex(re.getBody(), h, "</pic"); } for (int j = 0; j < countpic;j ++) { int begin0 beginpic = [j]; int end0 = endpic[j]; pistrs += re.getBody().substring(begin0 + 15, end0 - 3); } itemVO.setPicture(pistrs); if (i < ids.length - 1) returnstr += itemVO.toString() + "#"; else returnstr += itemVO.toString(); } } returnstr+="@"+pageSize; System.out.println("return数据:"+returnstr); return returnstr; } public String getAttribute(String src,String pattern1,String pattern2){ String result = null; int index1 = 0; int index2 = 0; index1 =src.indexOf(pattern1); index2 = src.indexOf(pattern2); result = src.substring(index1+pattern1.length()+9,index2-3); return result; } public static int getIndex(String string, int i, String str) { Matcher slashMatcher = Pattern.compile(str).matcher(string); int mIdx = 0; while (slashMatcher.find()) { mIdx++; if (mIdx == i) { break; } } return slashMatcher.start(); } private int countStr(String str,String sToFind) { int num = 0; while (str.contains(sToFind)) { str = str.substring(str.indexOf(sToFind) + sToFind.length()); num ++; } return num; }