Android连接C#做的WEBSERVICE,怎么解析XML?

hili 2016-03-02 10:23:20
C#做的webservic,使用浏览器打开显示如下:
<string xmlns="http://FengX.com/">
<NewDataSet><Table><id>5</id><username>newuser</username><nickname>weiwei</nickname><pass>123456789</pass><age>30</age><phone>13938988995</phone><regtime>2016-02-24T16:51:58.283+08:00</regtime><regip>0.0.0.0</regip><blacklist>0</blacklist></Table></NewDataSet>
</string>

使用ANDROID 获取的数据
<NewDataSet><Table><id>5</id><username>newuser</username><nickname>weiwei</nickname><pass>123456789</pass><age>30</age><phone>13938988995</phone><regtime>2016-02-24T16:51:58.283+08:00</regtime><regip>0.0.0.0</regip><blacklist>0</blacklist></Table></NewDataSet>



android代码如下:
String URL = "http://192.168.1.108/fengservice.asmx";//wsdl 的uri
String NAMESPACE = "http://FengX.com/";//namespace
String METHOD_NAME2 = "GetUserInfoFromID";//要调用的方法名称
String MemberLogin_SOAP_ACTION = NAMESPACE + "GetUserInfoFromID";

String rs = "";
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME2);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER12);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try {
androidHttpTransport.call(MemberLogin_SOAP_ACTION, envelope);
SoapPrimitive result = (SoapPrimitive) envelope.getResponse();

rs = result.toString();
} catch (Exception e)
{
Log.e("Exception:", e.toString());
}
return rs;
//----------------------------------------------------------------------------------
//如果把SoapPrimitive result = (SoapPrimitive) envelope.getResponse();替换为SoapObject result = (SoapObject) envelope.getResponse();
//会出错java.lang.ClassCastException: org.ksoap2.serialization.SoapPrimitive cannot be cast to org.ksoap2.serialization.SoapObject
//改为SoapObject result = (SoapObject) envelope.bodyIn; 正常
rs = result.getProperty("username").toString();

显示错误 java.lang.RuntimeException: illegal property: username


C#返回的xml格式正确吗?我想获取username的信息,接下来要如何解析?
...全文
149 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hili 2016-03-02
  • 打赏
  • 举报
回复
是不是webservice返回的xml格式不对? 无论返回多少数据,result.getPropertyCount()都是1
哎,真难 2016-03-02
  • 打赏
  • 举报
回复
为什么不用android自带的解析方法,sax啊
wei220000 2016-03-02
  • 打赏
  • 举报
回复
直接用substring就可以,也可以用正则表达式。
hili 2016-03-02
  • 打赏
  • 举报
回复
返回String[]类型即可,android端的解析可用
hili 2016-03-02
  • 打赏
  • 举报
回复
找到问题了,是返回的XML文件格式不对

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧