如何在android中解析和显示WCF的内容?

问题描述:

您好,使用网络服务。 我正在做一个POC。 这是我的活动课: 我使用kso​​ap2。如何在android中解析和显示WCF的内容?

package ab.tina; 

import java.io.InputStream; 
import java.net.URI; 

import org.ksoap2.SoapEnvelope; 
import org.ksoap2.serialization.SoapObject; 
import org.ksoap2.serialization.SoapPrimitive; 
import org.ksoap2.serialization.SoapSerializationEnvelope; 
import org.ksoap2.transport.HttpTransportSE; 

import android.app.Activity; 
import android.os.Bundle; 
import android.util.Log; 
import android.widget.TextView; 

public class TinaWebActivity extends Activity { 

    private TextView txtview; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     txtview=(TextView)findViewById(R.id.textView1); 
     try { 
      SoapObject Request = new SoapObject("http://www.webserviceX.NET/", "GetQuote"); 
      Request.addProperty("symbol", "MFST"); 

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


      HttpTransportSE androidHttpTransport = new HttpTransportSE("http://www.webservicex.net/stockquote.asmx"); 


      Log.e("tag1","err1"); 
      androidHttpTransport.call("http://www.webserviceX.NET/GetQuote", envelope); 
      Log.e("tag2","err2"); 

      SoapPrimitive response = (SoapPrimitive)envelope.getResponse(); 
      Log.e("tag3","err3"); 
      //String str=(String)response.getProperty(1); 
      txtview.setText(response.toString()); 
      //txtview.setText(response.toString()); 
      Log.e("tag4","err4"); 
     } 
     catch (Exception e) { 
       Log.e("tag5","err5"); 
      txtview.setText(e.getMessage()); 
     } 

    } 
} 

我m如果结果是这样的:

<string xmlns="http://www.webserviceX.NET/"> 
<StockQuotes><Stock><Symbol>MFST</Symbol><Last>0.00</Last><Date>N/A</Date><Time>N/A</Time><Change>N/A</Change><Open>N/A</Open><High>N/A</High><Low>N/A</Low><Volume>N/A</Volume><MktCap>N/A</MktCap><PreviousClose>N/A</PreviousClose><PercentageChange>N/A</PercentageChange><AnnRange>N/A - N/A</AnnRange><Earns>N/A</Earns><P-E>N/A</P-E><Name>MFST</Name></Stock></StockQuotes> 
</string> 

请告诉我如何可以解析它。我将需要哪些课程以及我应该使用哪种方法?

+0

检查这些了,可能有所帮助:http://www.kevingao.net/wcf-java-interop和http ://www.kevingao.net/wcf-java-interop/java-client-and-wcf-server.html或http://java.sun.com/developer/technicalArticles/glassfish/ProjectTango/ - http:// social.msdn.microsoft.com/forums/en-US/wcf/thread/4c5d88fb-5427-4024-aef1-94b601745dd1/ – bkdc

好吧,如果你想从你需要搜索soapobject里面的信息,每个节点都是一个soapobject。

你的情况

你做这样的事情:

resultData = (SoapObject)resultData.resultData.getProperty("StockQuotes"); 
//now resultData have all node of stockQuotes 
resultData = (SoapObject)resultData.resultData.getProperty("Stock"); 
//now resultdata have stock 

//now to parse string saftelly go to ksoap 2 android project download last version 
String symbol = resulresultData.getPropertySafelyAsString("Symbol", "NO DATA"); 
//or 
String symbol = resulresultData.getPropertySafelyAsString("Symbol"); 

//and so on for other XML 

玩得开心快乐编码

+0

如果你不能这样做告诉我我会很乐意帮助 – PedroAGSantos

+0

http:// seesharpgears.blogspot.com/2010/10/ksoap-android-web-service-tutorial-with.html – PedroAGSantos