android dom方式创建xml

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


解析出来的结果是

1031.gif

以下是创建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());  
        }  
          
    }

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念