小兔网

在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 = Op              PrintWriter 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)!