2013-03-09 60 views
1

也有我使用android系统中的代码用于获取XML数据XML没有出现在Android的

public class MainActivity extends Activity { 
private Object[] lv_arr = {}; 
// static String url = "C:\\Users\\Administrator\\Desktop\books.xml"; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    final EditText edt = (EditText)findViewById(R.id.editText1); 
    try { 

     SAXParserFactory factory = SAXParserFactory.newInstance(); 
     SAXParser saxParser = factory.newSAXParser(); 

     DefaultHandler handler = new DefaultHandler() { 

     boolean bfname = false; 
     boolean blname = false; 
     boolean bnname = false; 
     boolean bsalary = false; 

     public void startElement(String uri, String localName,String qName, 
        Attributes attributes) throws SAXException { 

      System.out.println("Start Element :" + qName); 
      edt.setText(qName); //Notice the text field 

      if (qName.equalsIgnoreCase("FIRSTNAME")) { 
       bfname = true; 
      } 

      if (qName.equalsIgnoreCase("LASTNAME")) { 
       blname = true; 
      } 

      if (qName.equalsIgnoreCase("NICKNAME")) { 
       bnname = true; 
      } 

      if (qName.equalsIgnoreCase("SALARY")) { 
       bsalary = true; 
      } 

     } 

     public void endElement(String uri, String localName, 
      String qName) throws SAXException { 

      System.out.println("End Element :" + qName); 

     } 

     public void characters(char ch[], int start, int length) throws SAXException { 

      if (bfname) { 
       System.out.println("First Name : " + new String(ch, start, length)); 

       bfname = false; 
      } 

      if (blname) { 
       System.out.println("Last Name : " + new String(ch, start, length)); 
      // edt.setText(new String(ch, start, length)); 
       blname = false; 
      } 

      if (bnname) { 
       System.out.println("Nick Name : " + new String(ch, start, length)); 
       bnname = false; 
      } 

      if (bsalary) { 
       System.out.println("Salary : " + new String(ch, start, length)); 
       bsalary = false; 
      } 

     } 

     }; 

      saxParser.parse("c:\\file.xml", handler); 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
} 

这个奇怪的问题,但将这个代码在java的罚款,但在Android中没有语法错误,但我没有得到任何输出而且文本字段来空的什么是错在这里 我的日志猫结果:

03-10 00:42:51.222: W/System.err(366): at javax.xml.parsers.SAXParser.parse(SAXParser.java:392) 
03-10 00:42:51.232: W/System.err(366): at javax.xml.parsers.SAXParser.parse(SAXParser.java:268) 
03-10 00:42:51.320: W/System.err(366): at dalvik.system.NativeStart.main(Native Method) 
03-10 00:42:51.832: W/InputManagerService(59): Starting input on non-focused client [email protected] (uid=10025 pid=132) 

可能是什么问题就在这里任何人可以帮助。

回答

0

不知道这是否会工作为你,但如果你保存你的file.xml在res/xml目录,你可以使用得到MainActivity的XmlResourceParser

XmlResourceParser myXmlParser = getResources().getXml(R.xml.file); 
+0

人感谢我的工作我是非常感谢你 – Mohammed 2013-03-09 20:06:30

0
saxParser.parse("c:\\file.xml", handler); 

这不会在设备上工作......那些无法存取权限是投产的资源或者将你的apk加载一个文件夹在C:\\ 欧洲工商管理学院,运行

+0

那我怎么才能得到它从资源文件夹 – Mohammed 2013-03-09 19:51:25