android操作xml
来源:互联网 发布:二维向量旋转矩阵 编辑:程序博客网 时间:2024/05/29 00:31
android操作xml封装后的类,包括创建xml和读xml。
public class XmlParserUtil{//创建xml文件 public static void createXmlFile(final String xmlPath){ File xmlFile = new File(xmlPath); FileOutputStream fileOPStream = null; try{ fileOPStream = new FileOutputStream(xmlFile); }catch (FileNotFoundException e) { Log.e("FileNotFoundException", "can't create FileOutputStream"); } XmlSerializer serializer = Xml.newSerializer(); try{ serializer.setOutput(fileOPStream,"UTF-8"); serializer.startDocument(null, true); serializer.startTag(null, "books"); for(int i = 0; i < 5; 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(); fileOPStream.close(); } catch (Exception e) { Log.e("XmlParserUtil","error occurred while creating xml file"); } Toast.makeText(getApplicationContext(), "创建xml文件成功!", Toast.LENGTH_SHORT).show(); } /** dom解析xml文件 * xmlPath xml的路径*/public static void domParseXML(final String xmlPath){ File file = new File(xmlPath); if(!file.exists()||file.isDirectory()){Log.e("domParseXML", "file not exists");return;}DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = null; try { db = dbf.newDocumentBuilder(); } catch (ParserConfigurationException e) { e.printStackTrace(); } Document doc = null; try { doc = db.parse(file); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e){ e.printStackTrace(); } Element root = doc.getDocumentElement(); NodeList books = root.getElementsByTagName("book"); String res = "本结果是通过dom解析:" + "\n"; for(int i = 0; i < books.getLength();i++){ Element 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"; } } /** xmlPullParser解析xml文件 * xmlPath xml的路径*/public static void xmlPullParseXML(final String xmlPath){ String res = "本结果是通过XmlPullParse解析:" + "\n"; try{ XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); XmlPullParser xmlPullParser = factory.newPullParser(); try{xmlPullParser.setInput(new StringReader(bufferedReaderFile(xmlPath)));}catch (Exception e) {Log.e("xmlPullParseXML", e.toString());}int eventType = xmlPullParser.getEventType(); try{ while (eventType != XmlPullParser.END_DOCUMENT){ String nodeName = xmlPullParser.getName(); switch (eventType){ case XmlPullParser.START_TAG: if("bookname".equals(nodeName)){ res += "书名: " + xmlPullParser.nextText() + " "; }else if("bookauthor".equals(nodeName)){ res += "作者: " + xmlPullParser.nextText() + "\n"; } break; default: break; } eventType = xmlPullParser.next(); } } catch (IOException e){ e.printStackTrace(); } } catch (XmlPullParserException e){ e.printStackTrace(); } } //从sd卡中读取xml文件的内容private String bufferedReaderFile(final String path) throws IOException{File file=new File(path);if(!file.exists()||file.isDirectory())throw new FileNotFoundException();BufferedReader br=new BufferedReader(new FileReader(file));String temp=null;StringBuffer sb=new StringBuffer();temp=br.readLine();while(temp!=null){sb.append(temp+" ");temp=br.readLine();}br.close();return sb.toString();}}
- android 操作xml
- Android SAX操作xml
- Android 操作XML
- android操作xml
- Android采用操作xml
- android xml操作
- android操作xml
- Android Xml文件操作
- android开发的对xml操作
- android操作XML的几种方式
- android中sax解析xml 操作介绍
- android操作XML的几种方式
- android操作XML的几种方式
- android操作XML的几种方式
- Android 操作XML的几种方式
- android操作xml封装后的类
- Android之——ContentProvider操作XML
- Android原始XML的读写操作
- 心动C++情牵汉洛塔
- 线程安全和线程不安全
- centos 配置虚拟主机
- Android通过HttpURLConnection与HttpClient联网代理网关设置
- 系统并发访问效率问题
- android操作xml
- 让你的程序可以执行脚本并和脚本实现交互
- css
- 进程与线程
- ConfigParser
- LRU缓存介绍与实现 (Java)
- 中国剩余定理(韩信点兵)POJ1006
- CSS里的各种水平垂直居中基础写法心得分享(附内联元素,块级元素的基本概念)
- mysql单例