Home >Backend Development >XML/RSS Tutorial >Create xml in android dom way

Create xml in android dom way

黄舟
黄舟Original
2017-02-09 14:09:022026browse

In the article on how to parse xml with android dom, the application of dom parsing xml is briefly introduced. Today, based on the original article, let’s talk about the application of dom to create xml in Android.

First: The created files will be placed under /data/data/cn.com.xxx (current package name)/files.

The created xml file is as follows:

<?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>

You can directly use the method in the android dom parsing xml article to parse it. Please make some modifications:

// 从assets文件夹下获取文件 转换成输入流  
//          inStream = this.getResources().getAssets().open(fileName);  
//          doc = docBuilder.parse(inStream);  
            InputStream fosStream = openFileInput(fileName);  
            doc = docBuilder.parse(fosStream);


At the same time, the fileName acquisition method:

String[] fileNames = getFilesDir().list();
String fileName = fileNames[0];


The parsed result is

Create xml in android dom way

The following is Code to create xml file:


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());  
        }  
          
    }

The above is the content of creating xml in android dom method. For more related content, please pay attention to the PHP Chinese website (www. php.cn)!


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn