小兔网

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];

解析出来的结果是


android dom方式创建xml
以下是创建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 dom方式创建xml的内容,更多相关内容请关注小兔网(www.zhishitu.com)!