1

私はxmlの概念が初めてです。.net Web サービスからデータを受け取ります。この Web サービスは、結果としてデータセットを返します。このデータセットの結果は、soap オブジェクトを使用して受け取ります。XML 形式で返されます。返された結果からデータを取得できませんでした。

Web サービスの出力は次のようになります。

 GETRESULTSResponse{GETRESULTSResult=anyType{Users=anyType{Table1=anyType{StudentID=713; RegisterNumber=2913402; StudentName=KARTHIK M; Gender=Male; CourseID=6; BranchID=27; BatchID=18; RollNumber=10SLEC603; }; }; }; }

各要素のデータを取得したい。解析する方法がわかりません。私を助けてください。

これは私のコードスニペットです:

SoapObject request = new SoapObject(WSDL_TARGET_NAMESPACE, METHOD_NAME1);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
PropertyInfo pi = new PropertyInfo();
pi.setName("strSQL");
pi.setValue(ConstantValues.STUDENT_DETAILS);
pi.setType(ArrayList.class);
request.addProperty(pi);
envelope.setOutputSoapObject(request);

HttpTransportSE httpTransportSE = new HttpTransportSE(SOAP_ADDRESS);
SoapObject response = null;

httpTransportSE.call(SOAP_ACTION1, envelope);
response = (SoapObject)envelope.bodyIn;

String xml = response.toString();
Document doc = XMLfunctions.XMLfromString(xml);
int numResults = XMLfunctions.numResults(doc);

if(totalCount > 0){
   NodeList nodes = doc.getElementsByTagName("Table1");
   for (int i = 0; i < nodes.getLength(); i++) {
  Element e = (Element)nodes.item(i);
  String studentId =  XMLfunctions.getValue(e, "StudentID");
  String regNo =  XMLfunctions.getValue(e, "RegisterNumber");
  String stuName =  XMLfunctions.getValue(e, "StudentName");
  String gender = XMLfunctions.getValue(e, "Gender");
   }
}

このコードを使用してデータを解析しようとしました。しかし、私はそれを解析できませんでした。.Net webservice データセットから取得した SOAP オブジェクト応答から xml データを解析する簡単な方法を教えてください。

前もって感謝します。

4

1 に答える 1

2

ついに私はこれに対する解決策を見つけました。

        SoapObject request = new SoapObject(ConstantValues.WSDL_TARGET_NAMESPACE, ConstantValues.METHOD_NAME1);
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.dotNet = true;
        PropertyInfo pi = new PropertyInfo();
        pi.setName("strSQL");
        pi.setValue(ConstantValues.STUDENT_DETAILS);
        //pi.setType(ArrayList.class);
        request.addProperty(pi);
        envelope.setOutputSoapObject(request);

        HttpTransportSE httpTransportSE = new HttpTransportSE(ConstantValues.SOAP_ADDRESS);
        SoapObject response = null;
        httpTransportSE.debug=true; 
        httpTransportSE.setXmlVersionTag("<?xml version=\"1.0\" encoding=\"utf-8\"?>");

        httpTransportSE.call(ConstantValues.SOAP_ACTION1, envelope);
        response = (SoapObject)envelope.bodyIn;
        int totalCount = response.getPropertyCount();

        String resultString=httpTransportSE.responseDump;
        Log.d("XML data ",resultString);

        Document doc = XMLfunctions.XMLfromString(resultString);

        //int numResults = XMLfunctions.numResults(doc);

        System.out.println(totalCount);
        if(totalCount > 0){
            NodeList nodes = doc.getElementsByTagName("Table1");
            for (int i = 0; i < nodes.getLength(); i++) {
                studentData = new StudentDetailsData();
                Element e = (Element)nodes.item(i);

                studentData.setStudentId(Integer.parseInt(XMLfunctions.getValue(e, "StudentID")));
                studentData.setRegisterNo(XMLfunctions.getValue(e, "RegisterNumber"));
                studentData.setStudentName(XMLfunctions.getValue(e, "StudentName"));
                studentData.setGender(XMLfunctions.getValue(e, "Gender"));
                studentData.setCourseId(Integer.parseInt(XMLfunctions.getValue(e, "CourseID")));
                studentData.setBranchId(Integer.parseInt(XMLfunctions.getValue(e, "BranchID")));
                studentData.setBatchId(Integer.parseInt(XMLfunctions.getValue(e, "BatchID")));
                studentData.setRollNo(XMLfunctions.getValue(e, "RollNumber"));
                studentData.setSection(XMLfunctions.getValue(e, "Section"));

                result.add(studentData);

            }
        }

私はそれが誰かに役立つことを願っています。ありがとうございました。

于 2014-02-12T09:48:12.290 に答える