Android xml数据的解析
2016-05-02 08:14
429 查看
xml格式,一种常用的数据格式,可以存放各种信息。比如城市名。
DOM方法解析:
xml 的读取。( xml文件存放在assets中。)
xml的生成。
DOM方法解析:
xml 的读取。( xml文件存放在assets中。)
try { InputStream is =getResources().getAssets().open("strings.xml"); DocumentBuilderFactory builderFactory=DocumentBuilderFactory.newInstance(); DocumentBuilder builder = builderFactory.newDocumentBuilder(); Document document = builder.parse(is); Element element =document.getDocumentElement(); NodeList list =element.getElementsByTagName("string"); for (int i = 0; i < list.getLength(); i++) { Element string = (Element) list.item(i); tv.append(string.getAttribute("name")); tv.append(string.getElementsByTagName("lb").item(0).getTextContent()); } } catch (IOException e) { e.printStackTrace(); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); }
xml的生成。
try { DocumentBuilderFactory builderFactory=DocumentBuilderFactory.newInstance(); DocumentBuilder builder = builderFactory.newDocumentBuilder(); Document newxmlDocument = builder.newDocument(); Element languages = newxmlDocument.createElement("languages"); languages.setAttribute("category", "IT"); Element lan1 = newxmlDocument.createElement("lan"); lan1.setAttribute("id", "1"); Element name1 = newxmlDocument.createElement("name"); name1.setTextContent("java"); Element ide1 = newxmlDocument.createElement("ide"); ide1.setTextContent("eclipse"); lan1.appendChild(name1); lan1.appendChild(ide1); languages.appendChild(lan1); Element lan2 = newxmlDocument.createElement("lan"); lan2.setAttribute("id", "2"); Element name2 = newxmlDocument.createElement("name"); name2.setTextContent("swift"); Element ide2 = newxmlDocument.createElement("ide"); ide2.setTextContent("xcode"); lan2.appendChild(name1); lan2.appendChild(ide1); languages.appendChild(lan2); newxmlDocument.appendChild(languages); TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); transformer.setOutputProperty("encoding", "utf-8"); StringWriter sWriter =new StringWriter(); transformer.transform(new DOMSource(newxmlDocument), new StreamResult(sWriter)); tv.setText(sWriter.toString()); } catch (DOMException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (TransformerConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ParserConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (TransformerFactoryConfigurationError e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (TransformerException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
相关文章推荐
- geekband android #5 第九周分享(多进程)
- Android群英传笔记——第十章:Android性能优化
- Android 中的 Service 全面总结
- android简单的多人聊天程序--借助Bmob后台数据库
- Android View 事件分发机制源码详解(ViewGroup篇)
- AndroidStudio中使用Git上传项目到github(非常详细,非常全面)(by 星空武哥)
- 三行代码实现Android彷腾讯视频播放界面的登陆框悬浮(吸附)在视频的底部
- Android学习之界面篇(七)侧滑菜单的实现
- android源码解析(十九)-->Dialog加载绘制流程
- AndroidStudio开发必备常识之Gradle构建
- Win7下安装Ubuntu16.04以及Ubuntu配置Android环境
- android计算器
- AndroidStudio快捷键
- [android] 优酷环形菜单-旋转动画
- Android四大组件
- Fresco特性与Android studio配置
- 调用Android摄像头与打开相册
- 20145301实验四 Android开发基础
- MAC OS X10.10上Android开发环境搭建
- Android控件学习开篇