[记录]Android操作XML - w3c

languages.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<languages cat="it">
    <lan id="1">
        <name>Java</name>
        <ide>Eclipse</ide>
    </lan>
    <lan id="2">
        <name>Swift</name>
        <ide>Xcode</ide>
    </lan>
    <lan id="3">
        <name>C#</name>
        <ide>Visual Studio</ide>
    </lan>
</languages>

 

解析xml关键代码

    txt = (TextView) findViewById(R.id.txt);
        try {
            //创建一个DocumentBuilderFactory实例
            DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
            //创建一个DocumentBuilder对象
            DocumentBuilder builder =  builderFactory.newDocumentBuilder();
            //创建一个Document,对应一个xml文件
            Document document = builder.parse(getAssets().open("languages.xml"));
            //获取Document的所有元素
            Element element = document.getDocumentElement();
            //获取标签为lan的所有元素,返回NodeList
            NodeList list = element.getElementsByTagName("lan");
            //遍历NodeList
            for (int i = 0; i < list.getLength(); i++) {
                //获取当前循环到的一项
                Element lan = (Element) list.item(i);
                //获取当前元素中属性名为id的值
                txt.append("\n"+lan.getAttribute("id")+"\n");
                txt.append(lan.getElementsByTagName("name").item(0).getTextContent()+"\n");
                txt.append(lan.getElementsByTagName("ide").item(0).getTextContent()+"\n");
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (SAXException e) {
            e.printStackTrace();
        } catch (ParserConfigurationException e) {
            e.printStackTrace();
        }

 生成XML关键代码:


txt = (TextView) findViewById(R.id.txt);

try
{ //创建一个DocumentBuilderFactory实例 DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); //创建一个DocumentBuilder对象 DocumentBuilder builder = builderFactory.newDocumentBuilder(); //创建一个新的document Document docment = builder.newDocument(); //创建一个根元素,名为languages Element languages = docment.createElement("languages"); //为languages元素添加cat属性,值为it languages.setAttribute("cat", "it"); String[] names={"Java","Swift","C#"}; String[] ides={"Eclipse","Xcode","Visual Studio"}; //循环创建子元素 for (int i = 0; i < 3; i++) { //创建一个元素,名为lan Element lan = docment.createElement("lan"); //为lan元素添加id属性,值为当前循环的索引+1 lan.setAttribute("id",(i+1)+""); //为上面添加的lan元素添加子元素 Element name = docment.createElement("name"); name.setTextContent(names[i]); Element ide = docment.createElement("ide"); name.setTextContent(ides[i]); //将上面创建的两个元素添加到lan元素中 lan.appendChild(name); lan.appendChild(ide); //将lan元素添加到languages元素中 languages.appendChild(lan); } //将languages元素添加到docment中 docment.appendChild(languages); //创建一个TransformerFactory实例 TransformerFactory factory = TransformerFactory.newInstance(); //创建一个Transformer对象 Transformer former = factory.newTransformer(); //设置former的属性 former.setOutputProperty("encoding", "utf-8"); StringWriter writer = new StringWriter(); former.transform(new DOMSource(docment), new StreamResult(writer)); txt.append(writer.toString()); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (TransformerConfigurationException e) { e.printStackTrace(); } catch (TransformerException e) { e.printStackTrace(); }

 

posted @ 2016-04-15 12:33  Ctony  阅读(99)  评论(0)    收藏  举报