我有要求,我需要从服务器获取xml来分析它是否存在,以及是否不从资产文件夹中获取文件。
我使用inputstream im传递的任何xml都将其作为StringReader的参数进行进一步处理。我正在使用XmlPullParser进行解析。
但是我无法将inputsource参数传递给stringreader进行进一步的解析。我不使用文件阅读器。请找到下面的代码。
private void readSynconfiguration( )
{
XmlParser xmlparser = new XmlParser();
try {
String strFromMbo = getDataFromMBO();
if(strFromMbo != null && !strFromMbo.isEmpty()) { // first
InputSource is = new InputSource(new StringReader(strFromMbo));
// result = getStringFromInputStream(is);
}
else {
context = RetailExecutionApplication.getApp().getApplicationContext();
InputStream stream = context.getAssets().open("syncSettings.xml");
result = getStringFromInputStream(stream);
}
} catch (IOException e) {
syncSetting = false;
e.printStackTrace();
}
StringReader labelReader = new StringReader(result);
try {
if(syncSetting) {
labelSharedInstance.clear();
labelSyncDetails = xmlparser.LabelsParse(labelReader);
labelSharedInstance = labelSyncDetails;
}
} catch (XmlPullParserException e) {
syncSetting = false;
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
请在这方面帮助我。
最佳答案
You can not pass inputsorce object directly to StringReader. First of all you convert inputsorce to reader as follows :
Reader reader = yourInputSource.getCharacterStream();
String result = reader.toString();
StringReader labelReader =新的StringReader(结果);