【问题标题】:can i parse Soap parsing this type?我可以解析解析这种类型的肥皂吗?
【发布时间】:2013-02-11 04:56:53
【问题描述】:

如何使用名称标签和我的数组列表解析选项标签作为这种类型

 [[anyType{}],[Sandy,Mark,Tayler,Waine],[mark Henry]]


FetchFormResponse
{
FetchFormResult=anyType
{
Formlist=anyType
{

Form=anyType
{
Name=Form; Id=6; Options=anyType{};
 }; 

Form=anyType
{
Name=Form1; Id=7; 
Options=anyType
{
Option=anyType{Name=Sandy; Id=154; Type=TextBox; Value=anyType{};
 }; 
Option=anyType
{
Name=Mark; Id=155; Type=TextBox; Value=anyType{};
 };
 Option=anyType
{
Name=Tayler; Id=156; Type=TextArea; Value=anyType{}; 
};
 Option=anyType
{
Name=Waine; Id=157; Type=CheckBox; Value=Master,Graduate; 
};
 };

Form=anyType
 {
Name=Form2; Id=9; 
Options=anyType
{
Option=anyType
{
Name=Mark Henry; Id=185; Type=Checkbox; Value=anyType{};
 };
};
 }; 

 }; 
}; 
};
 }

如果有人解决了这个问题以及如何解决,那将是非常酷的。谢谢。

【问题讨论】:

  • 看起来像 JSON,而不是 SOAP。自助:code.google.com/p/google-gson
  • 我从soapObject 中解析,但没有得到Options 标签数据这个类型的arraylist [[anyType{}],[Sandy,Mark,Tayler,Waine],[mark Henry]]
  • 我发现只有这种类型 [Sandy,Mark,Tayler,Waine]
  • SoapObject root = (SoapObject)soapobjectrespon.getProperty(0); SoapObject s_deals = (SoapObject) root.getProperty("Formlist"); arryformspinner=new ArrayList(); for (int i = 0; i

标签: android soap


【解决方案1】:

您必须创建肥皂对象并从那里获得响应,例如:

SoapObject response= (SoapObject) envelope.bodyIn; 
SoapObject result= (SoapObject) response.getProperty(0);
SoapObject list= (SoapObject) result.getProperty(0);
SoapObject form= (SoapObject) list.getProperty(0);
SoapObject options= (SoapObject) form.getProperty("Options");
for(int i=0; i<options.getPropertyCount(); i++){
SoapObject option= (SoapObject) options.getProperty(i);
String name = option.getPropertyAsString("Name");
array.add(name);
}

这应该可以工作

【讨论】:

    【解决方案2】:

    我真的不知道这是否会对你有所帮助,因为这是在 KSoap 中,而你的看起来像 JASON。因为我使用的是基本的 java 操作,所以不会有任何区别

    以字符串形式获取结果并使用模式匹配来提取您想要的数据

    String r = NameArray.columncount("userid", limitstart, loadNumber,loggername);
    String temp = r.replaceAll(";\\s", ",").replaceAll("string=", " ")
    .replace("anyType{", "").replace(",}", "");
    String[] fulname = temp.split(",\\s+");
    

    分步说明请参考本站How to process an array returned from WSDL

    【讨论】:

      猜你喜欢
      • 2017-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-29
      • 1970-01-01
      相关资源
      最近更新 更多