首页 > 代码库 > android dom方式创建xml
android dom方式创建xml
http://blog.csdn.net/nxh_love/article/details/7085174
在android dom 解析xml方式文章中,简单介绍了dom解析xml的应用。今天在原文章的基础上,说一下android中dom创建xml的应用。
首先:创建的文件会放在/data/data/cn.com.xxx(当前包名)/files下面。
创建生成的xml文件如下所示:
[html] view plaincopy
- <?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方式文章中方法去解析,注意修改一点:
[html] view plaincopy
- // 从assets文件夹下获取文件 转换成输入流
- // inStream = this.getResources().getAssets().open(fileName);
- // doc = docBuilder.parse(inStream);
- InputStream fosStream = openFileInput(fileName);
- doc = docBuilder.parse(fosStream);
同时,fileName取得方法:
[html] view plaincopy
- String[] fileNames = getFilesDir().list();
[html] view plaincopy
- String fileName = fileNames[0];
解析出来的结果是
以下是创建xml文件的代码:
[html] view plaincopy
- 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());
- }
- }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。