2013-02-22 63 views
0

大家好我解析從webservice Soaobject xml然後xml標記不爲空有一切正常,但然後它們是空的示例「<barcode></barcode>」它使字符串anyType {}。並顯示在我的列表中! :(我該怎麼辦從列表中刪除這個單詞「anyType {}」,它沒有顯示任何東西或我寫的東西? envelope.implicitTypes = false; --->這不工作....仍然得到anyType {} ... 這是我的代碼:用空標記解析SoapObject XML

String [] xmlElements = {「Id」,「name」,「Unit」,「Cost」,「description」,「barcode」};

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
     envelope.dotNet=true; 
     envelope.setOutputSoapObject(request); 

     androidHttpTransport.call(SOAP_ACTION, envelope); 

     ArrayList<HashMap<String, String>> Tags = new ArrayList<HashMap<String, String>>(); 

     if (xmlelements==null&& KEY_RAKTINIS==null){ 
      Object soapObj = (SoapObject)envelope.getResponse(); 
      soapObj = ((SoapObject) soapObj).getProperty(KEY_PATVIRTINIMAS); 
     Toast.makeText(getActivity().getBaseContext(), soapObj.toString(), Toast.LENGTH_SHORT).show(); 

     }else { 
      SoapObject soapObj = (SoapObject)envelope.getResponse(); 
    soapObj = (SoapObject) soapObj.getProperty(KEY_RAKTINIS);// su situo ieinu i butent customers punkta 

     for (int j = 0; j < soapObj.getPropertyCount(); j++) { 
     SoapObject soapObjMenu = (SoapObject) soapObj.getProperty(j); 

    for (int i = 0; i <1; i++) { 
       HashMap<String, String> map = new HashMap<String, String>(); 
        for(i=0; i < xmlelements.length;i++){ 

      if (soapObjMenu.getProperty(xmlelements[i])!="") { 
       map.put(xmlelements[i], (soapObjMenu.getProperty(xmlelements[i]).toString())); 
       Log.v(xmlelements[i], "sitas");} 
       } 

        Tags.add(map); 
           }} 

<Items>

<Item>

<Id>1000</Id>

<name>LCD Television HD Black 42 inches</name>

<Unit>ea</Unit>

<Cost>2000.00</Cost>

<description>Simple SKU</description>

<barcode></barcode>

</Item>

<Item>

<Id>1001</Id>

<name>LCD Television Model 01</name>

<Unit>ea</Unit>

<Cost>4015.00</Cost>

<description></description>

<barcode></barcode>

</Item>

<Item>

<Id>1003</Id>

<name>Plasma Television Model 01</name>

<Unit>ea</Unit>

<Cost>4020.00</Cost>

<description></description>

<barcode></barcode>

</Item>

`

回答

0

我解決問題,只是用.equals( 「該字符串」)

HashMap<String, String> map = new HashMap<String, String>(); 
        for(i=0; i < xmlelements.length;i++){ 


         if (!soapObjMenu.getProperty(xmlelements[i]).toString().equals("anyType{}")){ // use when tag is empty... 
       map.put(xmlelements[i], (soapObjMenu.getProperty(xmlelements[i]).toString()));}else{ map.put(xmlelements[i], (" "));} 
          } 
        Tags.add(map); 
           }}} 

附:如果你不會在字符串中使用空間,那麼它就會成爲問題,然後你在這張地圖上將它發送到你的應用程序中。把(xmlelements [i],(「」))因此必須改變它只是爲了空間;)

沒有人幫助,但我希望它有助於某人;)