用空标记解析SoapObject XML
大家好我解析从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>
`
我解决问题,只是用.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],(“”))因此必须改变它只是为了空间;)
没有人帮助,但我希望它有助于某人;)