изменение пути URL на локальный путь XML в парсере Android xml - PullRequest
0 голосов
/ 13 января 2011

hii каждые ,,, в следующем фрагменте кода я анализирую XML-файл, который в Интернете, используя URL-адрес, я получаю доступ ,, Но мне нужно проанализировать локальный XML-файл (скажем, файл, который хранится в папке XML в проекте ) пожалуйста, кто-нибудь может дать мне синтаксис для загрузки пути локального XML вместо URL ,,, (я новичок в Android) ,, спасибо заранее

открытый класс XMLComplaint расширяет Activity { private int window = 0; частная строка s1, s2, s3, s4, s5, s6; Строка str1, str2, str3, str4, str5, str6, str7, str8, str9, str10, str11, str12, str13, str14, sidsize; приватный ArrayList notedetails = new ArrayList (); ArrayList problemdetails = new ArrayList (); ArrayList totaldetails = new ArrayList ();

private ImageButton left,right;
private TextView Gid;
        ListView notelist = null,problemlist=null,totallist=null;
private ArrayAdapter<String> totaladapter = null;
private List<GroupInfo> commonlist ;

private GroupInfo gi ;
MyHandler myhandler=new MyHandler();

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Gid=(TextView)findViewById(R.id.Gid);
    left=(ImageButton)findViewById(R.id.left);
    right=(ImageButton)findViewById(R.id.right);

    totallist = (ListView) this.findViewById(R.id.Listview1);

    try {
        URL myurl=new URL("http://www.compliantbox.com/docprocessor/sync.php");
        SAXParserFactory spf=SAXParserFactory.newInstance();
        SAXParser sp=spf.newSAXParser();
        XMLReader xr=sp.getXMLReader();

        xr.setContentHandler(myhandler);
        xr.parse(new InputSource(myurl.openStream()));

        commonlist=myhandler.getGroups();

    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (ParserConfigurationException e) {
        e.printStackTrace();
    } catch (SAXException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    if(commonlist != null){
        gi= commonlist.get(window);
        Gid.setText(gi.getGroupName());
        notedetails.addAll(gi.getNoteNameList());
        problemdetails.addAll(gi.getProblemNameList());
        totaldetails.addAll(notedetails);
        totaldetails.addAll(problemdetails);
        totaladapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.datalook,totaldetails);
        totallist.setAdapter(totaladapter);

        left.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                right.setEnabled(true);
                window--;
                if(window>=0){
                    notedetails.clear();
                    problemdetails.clear();
                    totaldetails.clear();
                    gi= commonlist.get(window);
                    Gid.setText(gi.getGroupName());
                    notedetails.addAll(gi.getNoteNameList());
                    problemdetails.addAll(gi.getProblemNameList());
                    totaldetails.addAll(notedetails);
                    totaldetails.addAll(problemdetails);
                    totaladapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.datalook,totaldetails);
                    totallist.setAdapter(totaladapter);
                }else{
                    left.setEnabled(false);
                    window++;
                    }
            }});

1 Ответ

0 голосов
/ 13 января 2011

Вы можете попытаться получить поток ввода на свой ресурс:

InputStream is = getResources().openRawResource(R.xml.my_xml);
....
xr.parse(new InputSource(is)));

Вместо:

 URL myurl=new URL("http://www.compliantbox.com/docprocessor/sync.php");
 ...
 xr.parse(new InputSource(myurl.openStream()));

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...