android中XMl文件的读取

废话不多说了直接上代码:

新建一个Xml文件用于读取:

test.xml

<Languages cat="1">
    <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>

后台:

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

import java.io.IOException;
import java.io.StringWriter;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

public class MainActivity extends ActionBarActivity {

    private TextView tv1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

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

        try {

            //读取与解析Xml文件:
            DocumentBuilderFactory builderFactory=DocumentBuilderFactory.newInstance();
            DocumentBuilder builder=builderFactory.newDocumentBuilder();
            Document document=builder.parse(getAssets().open("test.xml")); //记住导的是import org.w3c.dom.Document;不要导错
            Element element=document.getDocumentElement();
            NodeList  list=element.getElementsByTagName("lan");//过滤读取lan所对应的内容
            for (int i=0;i<list.getLength();i++){
                Element lan= (Element) list.item(i);
                tv1.append(lan.getAttribute("id")+"\n");
                tv1.append(lan.getElementsByTagName("name").item(0).getTextContent()+"\n");
                tv1.append(lan.getElementsByTagName("ide").item(0).getTextContent()+"\n");

            }
                DocumentBuilderFactory builderFactory1=DocumentBuilderFactory.newInstance();
                DocumentBuilder builder1=builderFactory1.newDocumentBuilder();
                Document newxml=builder1.newDocument();
                Element languages=newxml.createElement("Languages");//根元素
                languages.setAttribute("cat","it");  //设置属性

                       //生成与输出XMl数据
                Element lan1=newxml.createElement("lan");
 //                <lan id="1">
//                <name>java</name>
//                <ide>Eclipse</ide>
//                </lan>
                lan1.setAttribute("id","1");
                Element name1=newxml.createElement("name");
                name1.setTextContent("java");
                Element ide1=newxml.createElement("ide");
                ide1.setTextContent("Eclipse");
                lan1.appendChild(name1);
                lan1.appendChild(ide1);
                languages.appendChild(lan1);

//                <lan id="2">
//                <name>Swift</name>
//                <ide>Xcode</ide>
//                </lan>
                Element lan2=newxml.createElement("lan");
                lan2.setAttribute("id", "1");
                Element name2=newxml.createElement("name");
                name2.setTextContent("Swift");
                Element ide2=newxml.createElement("ide");
                ide2.setTextContent("Xcode");
                lan2.appendChild(name2);
                lan2.appendChild(ide2);
                languages.appendChild(lan2);

                newxml.appendChild(languages);

                TransformerFactory transformerFactory=TransformerFactory.newInstance();
                Transformer transformer=transformerFactory.newTransformer();
                transformer.setOutputProperty("encoding", "utf-8");

                StringWriter sw=new StringWriter();
                transformer.transform(new DOMSource(newxml),new StreamResult(sw));
                sw.toString();//输出查看结果
                sw.close();
                tv1.append("\n输出结果:"+sw.toString());

        } catch (IOException e) {
            e.printStackTrace();
            Log.i("e1",e.toString());
        } catch (ParserConfigurationException e) {
            e.printStackTrace();
            Log.i("e2", e.toString());
        } catch (SAXException e) {
            e.printStackTrace();
            Log.i("e3", e.toString());
        } catch (TransformerConfigurationException e) {
            e.printStackTrace();
        } catch (TransformerException e) {
            e.printStackTrace();
        }
    }
}
时间: 2024-08-23 23:10:31

android中XMl文件的读取的相关文章

【Android】利用表格布局,Android中xml文件与java的交互制作登录界面

登录界面是图形编程.网页编程的一个经典而又基础的程序. 在安卓中,如图所示一个基本登录界面: 点击取消按钮就关闭这个程序,点击登录按钮则显示用户输入的用户名与密码. 一.基本布局 这个程序利用到安卓中的表格布局. 先打开res/values/strings.xml中定义几个字符串.之所以不直接把字符串直接写在activity_main.xml的组件中,是因为免得Eclipse出现警告.这个文件的代码如下: <?xml version="1.0" encoding="ut

Java中XML文件的读取与写入

表现:以  ".xml"为文件扩展名的文件: 存储:树形结构: 用途:存储以及传递信息:利用相同的XML文件将不同的系统联系起来: 在Java程序中如何获取XML文件的内容? 在Java程序中读取XML文件的过程也称为"解析XML文件": 解析的目的:获取节点名.节点值.属性名.属性值: 四种解析方式:DOM  SAX  DOM4J  JDOM java学习群669823128

Android中XML文件的序列化生成与解析

首先,我把Person的实体类 package net.loonggg.test; public class Person { private int id; private String age; private String name; private String sex; private String address; public int getId() { return id; } public void setId(int id) { this.id = id; } public

怎么在android的XML文件中添加注释

android的XML文件注释一般采用 <!--注释内容 -->的方式进行 在XML中,形如    <Button           />      的表示方式,其中"/>"的含义表示这个XML中没有内文,他是一个最小组成单元,也就是说他的中间不能包含其他任何< >的代码,所以在<Button />中间注释会出现错误 注意看到,在注释的前面有一个">"符号,这就是我们能够在他中间进行注释的原因,他的完整结

Android中XML数据解析

转载请注明出处:http://blog.csdn.net/yegongheng/article/details/38296207 XML初步 今天我们来学习另一种非常重要的数据交换格式-XML.XML(Extensible Markup Language的缩写,意为可扩展的标记语言),它是一种元标记语言,即定义了用于定义其他特定领域有关语义的.结构化的标记语言,这些标记语言将文档分成许多部件并对这些部件加以标识.XML 文档定义方式有:文档类型定义(DTD)和XML Schema.DTD定义了文

使用Pull解析器生成XML文件和读取xml文件

有些时候,我们需要生成一个XML文件,生成XML文件的方法有很多,如:可以只使用一个StringBuilder组拼XML内容,然后把内容写入到文件中:或者使用DOM API生成XML文件,或者也可以使用pull解析器生成XML文件,这里推荐大家使用Pull解析器. 一.布局界面 [html] view plaincopyprint? <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

Android对XML文件解析

HTTP网络传输中的数据组织方式有三种方式: 1.HTML方式 2.XML方式 3.JSON方式 XML的结构解析如下: 1.节点 2.元素 3.属性和属性值 由于XML的扩展性强,致使它需要有稳定的基础规则来支持扩展,该语法规则是: 1.开始和结束标签匹配 2.嵌套标签不能互相嵌套 3.区分大小写 Android中,解析Xml数据的三种方式: 1.DOM(org.w3c.dom) "文档对象模型"方式,解析完的Xml将生成一个树状结构的对象. 2.SAX(org.xml.sax) S

Android(java)学习笔记135:Android中assets文件夹资源的访问

Android资源文件分类: Android资源文件大致可以分为两种: 第一种是res目录下存放的可编译的资源文件: 这种资源文件系统会在R.java里面自动生成该资源文件的ID,所以访问这种资源文件比较简单,通过R.XXX.ID即可: 第二种是assets目录下存放的原生资源文件: 因为系统在编译的时候不会编译assets下的资源文件,所以我们不能通过R.XXX.ID的方式访问它们.那我么能不能通过该资源的绝对路径去访问它们呢?因为apk安装之后会放在/data/app/**.apk目录下,以

Android中的文件存储

另见Android中的文件存储 一.前言 文件存储时Android中最基本的一种数据存储方式,它不对存储的内容进行任何的格式化处理,所有数据都是原封不动地保存到文件当中的,因此它比较适合用于存储一些简单的文本数据或二进制数据. 二.将数据存储到文件中 Context类中提供了一个openFileOutput()方法,可以用于将数据存储到指定的文件中. 可以看到,此方法接收两个参数,第一个即是文件的名字,这里不可以包含文件路径,所有的文件都是默认存储到/data/data//files/目录下的.