2011-01-13 97 views
0

hii every one ,,,在下面的代码片段中解析了一个在互联网上使用url访问的xml文件,但是我需要解析一个本地xml(说文件存储在项目中的XML文件夹)请任何一个给我的语法来加载本地XML的路径,在URL的地方,,,(我是全新的Android),thanx提前在android xml解析器中将URL路径更改为本地xml路径

public class XMLComplaint extends Activity {0,0,0,0} private int window = 0; 私有字符串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++; 
        } 
      }}); 

回答

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

希望它能帮助:)

+0

thanx的乌拉圭回合的答复, ,没有它的崩溃,我没有得到输出 – Sowmya 2011-01-14 07:16:36