java的dom XmlPullParser中该解析xml

    作者:课课家教育更新于: 2016-03-10 14:38:12

    大神带你学编程,欢迎选课

      新建XML文件:

      安卓版本dom解析:

    private void createXmlFile(){
    File linceseFile=new File(BOOKS_PATH);
    
        try {
    
        linceseFile.createNewFile();
    
        } catch (Exception e) {
    
        Log.e("IOException", "exception in createNewFile() method");
    
        }
    
        FileOutputStream fileos=null;
    
        try {
    
        fileos=new FileOutputStream(linceseFile);
    
        } catch (Exception e) {
    
        Log.e("FileNotFoundException","can't create FileOutputStream");
    
        }
    
        XmlSerializer serializer=Xml.newSerializer();
    
        try {
    
        serializer.setOutput(fileos,"UTF-8");
    
        serializer.startDocument(null,true);
    
        serializer.startTag(null,"books");
    
        for(int i=0;i<3;i++){
    
        serializer.startTag(null, "book");
    
        serializer.startTag(null, "bookname");
    
        serializer.text("Android教程"+i);
    
        serializer.endTag(null, "bookname");
    
        serializer.startTag(null, "bookauthor");
    
        serializer.text("Frankie"+i);
    
        serializer.endTag(null, "bookauthor");
    
        serializer.endTag(null, "book");
    
        }
    
        serializer.endTag(null, "books");
    
        serializer.endDocument();
    
        serializer.flush();
    
        fileos.close();
    
        } catch (Exception e) {
    
        // TODO: handle exception
    
        }
    
        Toast.makeText(getApplicationContext(), "创建XML文件成功!", Toast.LENGTH_LONG).show();
    
        }
    
        private void saxParserXML(){
    
        }
    
        private void domParserXML() {
    
        File file=new File(BOOKS_PATH);
    
        DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
    
        DocumentBuilder db=null;
    
        try {
    
        db=dbf.newDocumentBuilder();
    
        } catch (Exception e) {
    
        e.printStackTrace();
    
        }
    
        Document doc=null;
    
        try {
    
        doc=db.parse(file);
    
        } catch (Exception e) {
    
        e.printStackTrace();
    
        }
    
        Element root=doc.getDocumentElement();
    
        NodeList books=root.getElementsByTagName("book");
    
        String res="本结果是通过dom 解析的:/n";
    
        for(int i=0;iElement book=(Element) books.item(i);
    
        Element bookname=(Element)book.getElementsByTagName("bookname").item(0);
    
        Element bookauthor=(Element)book.getElementsByTagName("bookauthor").item(0);
    
        res+="书名:"+bookname.getFirstChild().getNodeValue()+" "+"作者"+bookauthor.getFirstChild().getNodeValue()+"/n";
    
        }
    
        tv.setText(res);
    

      

    java的dom XmlPullParser中该解析xml_Java语言_Java设计_课课家

     

      其中注意设定权限:

      安卓版本pullparser解析:

    try {
    
      XmlPullParserFactory factory=XmlPullParserFactory.newInstance();
    
      factory.setNamespaceAware(true);
    
      XmlPullParser xpp=factory.newPullParser();
    
      xpp.setInput(new StringReader("zhangsan
    
      "));
    
      int eventType=xpp.getEventType();
    
      while(eventType!=XmlPullParser.END_DOCUMENT){
    
      switch(eventType){
    
      case XmlPullParser.START_DOCUMENT:
    
      System.out.println("Start document");
    
      break;
    
      case XmlPullParser.START_TAG:
    
      System.out.println("Start tag"+xpp.getName());
    
      if(xpp.getName().equals("name")){
    
      Toast.makeText(getApplicationContext(), xpp.nextText(), Toast.LENGTH_SHORT).show();
    
      }else if(xpp.getName().equals("image")){
    
      Toast.makeText(getApplicationContext(), xpp.getAttributeValue(0), Toast.LENGTH_SHORT).show();
    
      }
    
      break;
    
      case XmlPullParser.TEXT:
    
      break;
    
      case XmlPullParser.END_DOCUMENT:
    
      break;
    
      default :
    
      break;
    
      }
    
      eventType=xpp.next();
    

课课家教育

未登录