博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android中XML格式数据的简单使用
阅读量:7071 次
发布时间:2019-06-28

本文共 5890 字,大约阅读时间需要 19 分钟。

 源码:

package com.wangzhu.demo;import java.io.IOException;import java.io.StringWriter;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import javax.xml.transform.OutputKeys;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerConfigurationException;import javax.xml.transform.TransformerException;import javax.xml.transform.TransformerFactory;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.NodeList;import org.xml.sax.SAXException;import android.content.Context;/** * XML,即可扩展标记语言(Extensible Markup Language),
* 标准通用标记语言的子集,一种用于标记电子文件使其具有结构性的标记语言。
* 它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。
* 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的机构化数据。
* * 特点:
* XML是一种标记语言,很类似HTML
* XML的设计宗旨是传输数据,而非显示数据
* XML标签没有被预定义,您需要自行定义标签
* XML被设计为具有自我描述性
* XML是W3C的推荐标准
* * 与HTML对比:
* XML不是HTML的替代。
* XML和HTML为不同的目的而设计:
* XML被设计为传输和存储数据,其焦点是数据的内容。
* HTML被设计用来显示数据,其焦点是数据的外观。
* HTML旨在显示信息,而XML旨在传输信息。
* * XML的语法规则:
* 在XML中,省略关闭标签是非法的,所有元素都必须有关闭标签。
* XML标签对大小写敏感
* XML必须正确地嵌套
* XML文档必须有根元素
* XML的属性值须加引号
* XML中空格会被保留
* * 使用Android平台自带的API加载XML数据,并且按照XML的结构将所有数据解析出来
* * 使用Android平台自带的API创建符合XML规范的数据,并且将XML数据输出。
* * @author wangzhu * @date 2014年11月15日 下午11:38:10 */public class XMLUtils { private Context context; public XMLUtils(Context context) { this.context = context; } /** * 读取XML文件 */ public void readXML() { StringBuilder accum = new StringBuilder(); try { DocumentBuilderFactory builderFactory = DocumentBuilderFactory .newInstance(); DocumentBuilder builder = builderFactory.newDocumentBuilder(); Document document = builder.parse(context.getAssets().open( "languages.xml")); // 获取Languages标签 Element element = document.getDocumentElement(); accum.append("cat=").append(element.getAttribute("cat")) .append(","); NodeList list = element.getElementsByTagName("lan"); for (int i = 0; i < list.getLength(); i++) { // 获取每个lan标签 Element lan = (Element) list.item(i); accum.append("id=").append(lan.getAttribute("id")).append(","); accum.append("ide=") .append(lan.getElementsByTagName("ide").item(0) .getTextContent()).append(","); accum.append("name=") .append(lan.getElementsByTagName("name").item(0) .getTextContent()).append(";"); } System.err.println("readXml: " + accum); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } /** * 创建XML文件 */ public void createXML() { try { DocumentBuilderFactory builderFactory = DocumentBuilderFactory .newInstance(); DocumentBuilder builder = builderFactory.newDocumentBuilder(); // 创建文档对象 Document document = builder.newDocument(); // 创建根元素 Element languages = document.createElement("Languages"); languages.setAttribute("cat", "it"); // 使用文档对象创建第一个子元素 Element lan1 = document.createElement("lan"); lan1.setAttribute("id", "1"); Element name1 = document.createElement("name"); name1.setTextContent("Java"); // 添加子元素 lan1.appendChild(name1); Element ide1 = document.createElement("ide"); ide1.setTextContent("Eclipse"); // 添加子元素 lan1.appendChild(ide1); // 添加到根元素中 languages.appendChild(lan1); // 使用文档对象创建第一个子元素 Element lan2 = document.createElement("lan"); lan2.setAttribute("id", "2"); Element name2 = document.createElement("name"); name2.setTextContent("Swift"); // 添加子元素 lan2.appendChild(name2); Element ide2 = document.createElement("ide"); ide2.setTextContent("Xcode"); // 添加子元素 lan2.appendChild(ide2); // 添加到根元素中 languages.appendChild(lan2); // 使用文档对象创建第一个子元素 Element lan3 = document.createElement("lan"); lan3.setAttribute("id", "3"); Element name3 = document.createElement("name"); name3.setTextContent("C#"); // 添加子元素 lan3.appendChild(name3); Element ide3 = document.createElement("ide"); ide3.setTextContent("Visual Studio"); // 添加子元素 lan3.appendChild(ide3); // 添加到根元素中 languages.appendChild(lan3); // 将languages作为根元素添加到文档中 document.appendChild(languages); // 转化 TransformerFactory transformerFactory = TransformerFactory .newInstance(); Transformer transformer = transformerFactory.newTransformer(); transformer.setOutputProperty(OutputKeys.ENCODING, "utf-8"); StringWriter sw = new StringWriter(); transformer .transform(new DOMSource(document), new StreamResult(sw)); System.err.println("createXML: " + sw.toString()); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (TransformerConfigurationException e) { e.printStackTrace(); } catch (TransformerException e) { e.printStackTrace(); } }}

 截图:

Xml文件:

转载于:https://www.cnblogs.com/xiaoxian1369/p/4100903.html

你可能感兴趣的文章
应输入 #endregion 指令报错的排查技巧
查看>>
C# 正整数和非零正整数校验
查看>>
lnmp安装--php与nginx结合
查看>>
bootstrap怎么设置下拉菜单不点击,改成鼠标悬停直接显示下拉菜单
查看>>
安卓开发学习1
查看>>
android 源码分析
查看>>
OLE 一些常用的处理
查看>>
hadoop单机and集群模式安装
查看>>
添不花钱学计算机及编程(预备篇)— 操作系统
查看>>
Unity3D与iOS消息交互方法(1)--iOS接收Unity3D发出的消息
查看>>
用栈实现递归算法(第一版)
查看>>
纯绿色集成环境,可切换180个Mysql、700个PHP版本
查看>>
ADO.NET之SqlConnection、sqlcommand的应用(学习笔记)
查看>>
JS替换字符串里面的双引号
查看>>
行转化为列
查看>>
java中final小结
查看>>
Nginx 配置多个站点
查看>>
Android互动设计-蓝牙遥控自走车iTank
查看>>
yii---进行接受参数
查看>>
黑马程序员--C#中属性和字段(变量)的区别
查看>>