I am editing my qestion to make clear idea about the string name resfile_name and result
I want to do xml parsing.where i am passing some parameter to url ane it gives me responce in xml format which i take it in string name result now i want to parse that string(xml data).
i am using the follwing below code:-
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();
vector = new Vector();
vector.addElement(new KeyPair("ParentID", "10000186"));
String result = Constants.callSoap("GetChildList", vector);
InputStream is = new ByteArrayInputStream(result.getBytes("UTF-8"));
Reader reader = new InputStreamReader(in);
XmlParser parser = new XmlParser(reader);
ParseEvent pe = null;
Reader reader = new InputStreamReader(in);
XmlParser parser = new XmlParser(reader);
ParseEvent pe = null;
parser.skip();
parser.read(Xml.START_TAG, null, "GetChildListResult");
parser.skip();
parser.read(Xml.START_TAG, null, "CustomChildList");
boolean trucking = true;
boolean first = true;
while (trucking) {
pe = parser.read();
if (pe.getType() == Xml.START_TAG) {
String name = pe.getName();
System.out.println("nAME=="+name);
if (name.equals("ChildID")) {
String title, link, description;
title = link = description = null;
while ((pe.getType() != Xml.END_TAG) ||
(pe.getName().equals(name) == false)) {
pe = parser.read();
if (pe.getType() == Xml.START_TAG &&
pe.getName().equals("ChildName")) {
pe = parser.read();
title = pe.getText();
}
else if (pe.getType() == Xml.START_TAG &&
pe.getName().equals("IMEINumber")) {
pe = parser.read();
link = pe.getText();
}
else if (pe.getType() == Xml.START_TAG &&
pe.getName().equals("ChildStatus")) {
pe = parser.read();
description = pe.getText();
}
}
}
else {
while ((pe.getType() != Xml.END_TAG) ||
(pe.getName().equals(name) == false))
pe = parser.read();
}
}
if (pe.getType() == Xml.END_TAG &&
pe.getName().equals("GetChildListResult"))
trucking = false;
}
the Constants.callSoap(“GetChildList”, vector); calls the callsoap method in constants which has code:–
public static String callSoap(String method, Vector vector) {
String result = null;
Constants.log("callSoap");
try {
SoapObject request = new SoapObject(NAMESPACE, method);
if (vector != null) {
for (int i = 0; i < vector.size(); i++) {
KeyPair keyPair = (KeyPair) vector.elementAt(i);
request.addProperty(keyPair.getKey(), keyPair.getValue());
}
}
Constants.log("callSoap2");
Element[] header = new Element[1];
header[0] = new Element().createElement(NAMESPACE, "AuthSoapHd");
Element username = new Element().createElement(NAMESPACE, "strUserName");
username.addChild(Node.TEXT, "*****");
header[0].addChild(Node.ELEMENT, username);
Element password = new Element().createElement(NAMESPACE, "strPassword");
password.addChild(Node.TEXT, "******");
header[0].addChild(Node.ELEMENT, password);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.headerOut = header;
envelope.setOutputSoapObject(request);
Constants.log("callSoap3");
HttpTransport transport = new HttpTransport("http://***.***.*.***/ChildTrackerService/ChildTrackerService.asmx?wsdl");
//log("Log:transport");
transport.setXmlVersionTag("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
//log("Log:transport1");
try {
transport.call("http://tempuri.org/" + method, envelope);
//log("Log:transport:call");
result = (envelope.getResponse()).toString();
} catch (Exception e) {
System.out.println("exception of IP==" + e);
}
} catch (Exception e) {
log("Exception CallSoap:" + e.toString());
}
return result;
}
And the class keypair contain:-
public KeyPair(String key, String value) {
this.key = key;
this.value = value;
}
public String getKey() {
return key;
}
public String getValue() {
return value;
}
The string reult has --
result==anyType{CustomChildList=anyType{ChildID=452; ChildName=Local; IMEINumber=958694; ChildStatus=Free; ExpiryDate=2011-05-26T16:22:21.29; RemainigDays=1; SOS=1; }; CustomChildList=anyType{ChildID=502; ChildName=testing; IMEINumber=123456; ChildStatus=anyType{}; ExpiryDate=null; RemainigDays=0; SOS=1; }; CustomChildList=anyType{ChildID=523; ChildName=abc; IMEINumber=124124; ChildStatus=anyType{}; ExpiryDate=null; RemainigDays=0; SOS=1; }; }
the actual response is like this:–
452
Local
958694
Free
2011-05-26T16:22:21.29
1
1
502
testing
123456
0
1
523
abc
124124
0
1
Following code will look for resources in classpath with the name passed in argument and you are passing whole XML so NPE is obvious.
You better get the inputStream from URL , as shown in below broken snippet and move ahead
See