xml文件解析之pull解析
发布时间:2020-12-16 00:10:04 所属栏目:百科 来源:网络整理
导读:xml文件解析: xml文件: pre name="code" class="html"span style="font-size:14px;"?xml version="1.0" encoding="utf-8"?books book id100/id nameandroid学习/name price20/price /book book id101/id name好好学习,天天向上/name price12.2/price /boo
xml文件解析: xml文件: <pre name="code" class="html"><span style="font-size:14px;"><?xml version="1.0" encoding="utf-8"?> <books> <book> <id>100</id> <name>android学习</name> <price>20</price> </book> <book> <id>101</id> <name>好好学习,天天向上</name> <price>12.2</price> </book> </books></span> <span style="font-size:14px;">//将xml文件转换为数据 public void xmlParseTest() throws IOException,XmlPullParserException{ XmlPullParser pullParser = Xml.newPullParser(); //获取XmlPullParser对象 InputStream is = getContext().getAssets().open("parse.xml"); //解析文本 ArrayList<Books> books = null ; Books book = null; //通过对象Books获取数据 pullParser.setInput(is,"UTF-8"); int type = pullParser.getEventType(); //获取事件类型 while (type != pullParser.END_DOCUMENT) { //结束文本</books> switch(type){ case XmlPullParser.START_DOCUMENT: //开始文本<books> books = new ArrayList<Books>(); break; case XmlPullParser.START_TAG: //开始标记 <book> if (pullParser.getName().equals("book")) { book = new Books(); }else if (pullParser.getName().equals("id")) { type = pullParser.next(); //指向下一个位置,不然无法获取数据 book.setId(Integer.parseInt(pullParser.getText())); }else if (pullParser.getName().equals("name")) { type = pullParser.next(); book.setName(pullParser.getText()); }else if (pullParser.getName().equals("price")) { type = pullParser.next(); book.setPrice(Double.valueOf(pullParser.getText())); } break; case XmlPullParser.END_TAG: //结束标记 </books> if (pullParser.getName().equals("book")) { books.add(book); book = null; //置为空释放资源 } break; } type = pullParser.next(); //指向下一个标记 } for (Books books2 : books) { Logs.d("books-----id"+books2.getId()+",name--"+books2.getName()); } }</span>生成xml文件: <span style="font-size:14px;">//将数据转换为xml字符串 public void serialize() throws IllegalArgumentException,IllegalStateException,IOException{ XmlSerializer serializer = Xml.newSerializer(); ArrayList<Books> bookList = new ArrayList<Books>(); Books books = new Books(); books.setId(12); books.setName("android解析xml学习1"); books.setPrice(23.3); bookList.add(books); books = new Books(); books.setId(13); books.setName("android解析xml学习2"); books.setPrice(24.3); bookList.add(books); books = new Books(); books.setId(14); books.setName("android解析xml学习3"); books.setPrice(25.3); bookList.add(books); StringWriter os = new StringWriter(); serializer.setOutput(os); serializer.startDocument("UTF-8",true); serializer.startTag("","books"); for (Books books2 : bookList) { //遍历数据 serializer.startTag("","book"); serializer.startTag("","id"); serializer.text(books2.getId()+""); serializer.endTag("","id"); serializer.startTag("","name"); serializer.text(books2.getName()); serializer.endTag("","name"); serializer.startTag("","price"); serializer.text(books2.getPrice()+""); serializer.endTag("","price"); serializer.endTag("","book"); } serializer.endTag("","books"); serializer.endDocument(); Logs.d(""+os.toString()); //此时打印数据与上方xml相同 }</span> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |