我有要求,我需要从服务器获取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(结果);

07-27 15:27