【问题标题】:parsing SoapObject XML with empty tag使用空标签解析 SoapObject XML
【发布时间】:2013-02-22 14:20:44
【问题描述】:

大家好,我从 web 服务解析 Soaobject xml,然后 xml 标签不为空,一切正常,但它们是空示例“<barcode></barcode>”,它生成字符串-anyType{}。并将其显示在我的列表中! :( 我应该怎么做才能从列表中删除这个词“anyType{}”,它什么也没显示或我写的东西? 信封.implicitTypes = false; ---> 这不起作用.... 仍然得到 anyType{}... 这是我的代码:

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>

`

【问题讨论】:

    标签: xml parsing soap envelope


    【解决方案1】:

    我解决了问题,只需使用 .equals("that string")

    例子

    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);
                                    }}}
    

    附言如果您不使用字符串中的空间,则会出现问题,那么您可以在此 map.put(xmlelements[i], (" ")) 中将其从您的应用程序发送到服务,因此必须仅将其更改为空间;)

    没有人帮助,但我希望它对某人有所帮助;)

    【讨论】:

      猜你喜欢
      • 2012-11-16
      • 1970-01-01
      • 2015-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-12
      • 1970-01-01
      相关资源
      最近更新 更多