android dom方式创建xml
16lz
2021-01-23
在android dom 解析xml方式文章中,简单介绍了dom解析xml的应用。今天在原文章的基础上,说一下android中dom创建xml的应用。
首先:创建的文件会放在/data/data/cn.com.xxx(当前包名)/files下面。
创建生成的xml文件如下所示:
<?xml version="1.0" encoding="utf-8"?><classes><group name="一年级" num="10"><person name="小明" age="7"><chinese>语文90</chinese><english>英语80</english></person></group></classes>可以直接用 android dom 解析xml方式文章中方法去解析,注意修改一点:
// 从assets文件夹下获取文件 转换成输入流//inStream = this.getResources().getAssets().open(fileName);//doc = docBuilder.parse(inStream);InputStream fosStream = openFileInput(fileName);doc = docBuilder.parse(fosStream);同时,fileName取得方法:
String[] fileNames = getFilesDir().list();
String fileName = fileNames[0];解析出来的结果是
以下是创建xml文件的代码:
private void createXmlFile(){try {DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();DocumentBuilder builder = factory.newDocumentBuilder();Document doc = builder.newDocument();//创建xml根元素Element rootEle = doc.createElement("classes");doc.appendChild(rootEle);//创建xml二级元素Element groupEle = doc.createElement("group");groupEle.setAttribute("name", "一年级");groupEle.setAttribute("num", "10");//创建xml person元素Element personEle = doc.createElement("person");//personEle 的属性和属性值personEle.setAttribute("name", "小明");personEle.setAttribute("age", "7");//创建personELe的子元素Element chinese = doc.createElement("chinese");//创建personELe的子元素的值chinese.appendChild(doc.createTextNode("语文90"));personEle.appendChild(chinese);Element english = doc.createElement("english");english.appendChild(doc.createTextNode("英语80"));personEle.appendChild(english);groupEle.appendChild(personEle);rootEle.appendChild(groupEle);TransformerFactory tf = TransformerFactory.newInstance();Transformer transformer = tf.newTransformer();DOMSource source = new DOMSource(doc);transformer.setOutputProperty(OutputKeys.ENCODING, "utf-8");transformer.setOutputProperty(OutputKeys.INDENT, "no");//创建文件存放在 /data/data/cn.xxx.xxx(当前包)/files FileOutputStream fos = openFileOutput("Dom.xml", Context.MODE_PRIVATE);//创建文件存放在 /data/data/cn.xxx.xxx(当前包)/cache//FileOutputStream fos = OpPrintWriter pw = new PrintWriter(fos);StreamResult result = new StreamResult(pw);transformer.transform(source, result);System.out.println("生成XML文件成功!");} catch (ParserConfigurationException e) {System.out.println(e.getMessage());} catch (TransformerConfigurationException e) {System.out.println(e.getMessage());} catch (TransformerException e) {System.out.println(e.getMessage());} catch (FileNotFoundException e) {System.out.println(e.getMessage());}}
更多相关文章
- Android 下载的三种实现方式(文件流的读写方式下载,用DownloadMan
- Android 自定义View及其在布局文件中的使用示例
- 实现了 Android 设备之间通过 Wifi 传输文件的功能
- Dex2jar 与 JD-GUI快速反编译Android apk文件
- Android UI设计的基本元素有哪些
- Android在SD卡上的文件读写
- 2013.12.23 ——— android assents文件路径
- Android 制定的ROM包(文件系统根目录结构分析)
- Android中xml文件读写