在android xml解析器中将URL路径更改为本地xml路径

时间:2011-01-13 13:27:15

标签: android xml xml-parsing

hii每一个,,,在下面的代码片段中解析一个xml文件,在互联网上,使用url am access,但我需要解析一个本地xml(比如说存放在项目的xml文件夹中的文件) )请任何人给我的语法加载本地xml的路径在URL ,,,(我是Android的全新),, thanx提前

public class XMLComplaint extends Activity {     private int window = 0;     private String s1,s2,s3,s4,s5,s6;     String str1,str2,str3,str4,str5,str6,str7,str8,str9,str10,str11,str12,str13,str14,sidsize;     private 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 :(得分:0)

您可以尝试通过以下方式获取资源的输入流:

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()));

希望有所帮助:)