1

xml 解析に問題があります。選択した項目 (コース) に必要なデータがあり、成功したコード 1 (つまり、pcode) が返された場合、それは問題ではありませんが、問題は選択した項目 (コース) のデータがないことです。 、コード 0 (pcode 0) を返します。

私の問題は、解析中に問題があることです。

入力;<Es_Request><Data><UserId>913</UserId><SchoolId>1</SchoolId><CourseId>977</CourseId></Data></Es_Request>

Web からの応答:

<Es_Response>
    <Es_Session_Id></Es_Session_Id>
     <Bpn_Request_Id></Bpn_Request_Id>
    <userIDName>913</userIDName>
    <schoolID>1</schoolID>
    <CourseID>977</CourseID>
    <Response_Code>
        <Pcode>0</Pcode>
        <Scode>Unsuccessful</Scode>
        <Test>977</Test>
        <ROLEID>4</ROLEID>
    </Response_Code>
    <Data>
        <message>Assignments not found for Professor & CourseId.</message>
    </Data>
</Es_Response>

ここに解析用のJavaコードがあります

if (response != null) {
                    esResponse = XmlParser.parseAssignmentProfessorResponse(response);

                        if (esResponse.getResponseCode().getpCode().equalsIgnoreCase("1")) {
                            AssignmentDataInfo assignmentDataInfo = esResponse.getAssignmentListData().getAssignmentDataInfo();
                            int size = assignmentDataInfo.size();
                            int i = 0;
                            for (; i < size; i++) {
                                EduInterface.assignmetIdArrayList
                                        .add(assignmentDataInfo.get(i)
                                                .getAssignmentId());
                                EduInterface.assignmetNameArrayList
                                        .add(assignmentDataInfo.get(i)
                                                .getAssignmentName());
                                    }
                        } else {

                            Log.d("else", "Data Not Found For this Selected Item");

                        }

                    }

ハンドラー クラスは次のとおりです。

@Override
    public void startElement(String uri, String localName, String qName,
            Attributes atts) throws SAXException {
        content = new StringBuilder();
        if (localName.equalsIgnoreCase("Data")) {
            assignmentListData=new AssignmentListData();
        } else if (localName.equalsIgnoreCase("Assignments")) {
            assignmentItems = new AssignmentItems();
        }
        else if (localName.equalsIgnoreCase("Es_Response")) {
            esResponse=new EsResponse();
        } else if (localName.equalsIgnoreCase("Response_Code")) {
            responseCode=new ResponseCode();
        }
    }
    @Override
    public void endElement(String uri, String localName, String qName)
            throws SAXException {
         if (localName.equalsIgnoreCase("Pcode")) {
              responseCode.setpCode(content.toString());
              Log.d("TAG", "Pcode Value->"+content.toString());
            }
          else if (localName.equalsIgnoreCase("Response_Code")) {
              esResponse.setResponseCode(responseCode);

            }
          else if (localName.equalsIgnoreCase("AssignmentId")) {
              assignmentItems.setAssignmentId(content.toString());
            }
          else if (localName.equalsIgnoreCase("AssignmentName")) {
              assignmentItems.setAssignmentName(content.toString());
            }
           else if (localName.equalsIgnoreCase("Assignments")) {
              assignmentDataInfo.add(assignmentItems);
            }
          else if (localName.equalsIgnoreCase("Data")) {
              assignmentListData.setAssignmentDataInfo(assignmentDataInfo);
            }
          else if (localName.equalsIgnoreCase("Es_Response")) {
                esResponse.setAssignmentListData(assignmentListData);
            }

    }

次のログ猫エラーが発生しました:

    05-02 08:55:42.724: D/TAG(1794): Pcode Value->0

    05-02 08:55:43.764: W/System.err(1794):     at org.apache.harmony.xml.ExpatParser.parseDocument(ExpatParser.java:484)
    05-02 08:55:43.764: W/Trace(1794): Unexpected value from nativeGetEnabledTags: 0
    05-02 08:55:43.764: W/Trace(1794): Unexpected value from nativeGetEnabledTags: 0
    05-02 08:55:43.764: W/System.err(1794):     at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:309)
    05-02 08:55:43.764: W/System.err(1794):     at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:267)
    05-02 08:55:43.774: W/System.err(1794):     at test.services.XmlParser.parseAssignmentProfessorResponse(XmlParser.java:840)
    05-02 08:55:43.774: W/System.err(1794):     at test.gradebook.GradeAssignmentActivity$GetDataTask.doInBackground(GradeAssignmentActivity.java:326)
    05-02 08:55:43.774: W/System.err(1794):     at test.gradebook.GradeAssignmentActivity$GetDataTask.doInBackground(GradeAssignmentActivity.java:1)
    05-02 08:55:43.815: W/System.err(1794):     at android.os.AsyncTask$2.call(AsyncTask.java:287)
05-02 08:55:44.334: E/Grade Assignment class(1794): parse failed
05-02 08:55:44.334: E/Grade Assignment class(1794): java.lang.NullPointerException
05-02 08:55:44.334: E/Grade Assignment class(1794):     at test.gradebook.GradeAssignmentActivity$GetDataTask.doInBackground(GradeAssignmentActivity.java:329)
05-02 08:55:44.334: E/Grade Assignment class(1794):     at test.gradebook.GradeAssignmentActivity$GetDataTask.doInBackground(GradeAssignmentActivity.java:1)
05-02 08:55:44.334: E/Grade Assignment class(1794):     at android.os.AsyncTask$2.call(AsyncTask.java:287)

詳細が長くなって申し訳ありませんが、この問題を解決したいので、基本的なアイデアを教えてください。

4

0 に答える 0