android之读取xml文件中的数据和创建

来源:互联网 发布:迈乐网络电视机顶盒 编辑:程序博客网 时间:2024/06/05 02:35

简单的布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >
<TextView 
    android:id="@+id/text"
     android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:text="ready"

    />


</LinearLayout>

languages.xml:简单的一个xml文件

<?xml version="1.0" encoding="utf-8"?>
<Languages cat="it">
    <lan id="1">
        <name>Java</name>
        <ide>Eclipe</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文件的源代码:

package com.example.readassert;


import java.io.BufferedReader;


import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;


import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;


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


import android.os.Bundle;
import android.renderscript.Element;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;


public class MainActivity extends Activity {
private TextView text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text=(TextView) findViewById(R.id.text);

try {
DocumentBuilderFactory builderFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=builderFactory.newDocumentBuilder();
Document document=builder.parse(getAssets().open("languages.xml"));
   org.w3c.dom.Element element=document.getDocumentElement();
   NodeList list=element.getElementsByTagName("lan");
   for(int i=0;i<list.getLength();++i){
    org.w3c.dom.Element lan=(org.w3c.dom.Element) list.item(i);
    text.append(lan.getAttribute("id")+"\n");
    text.append(lan.getElementsByTagName("name").item(0).getTextContent()+"\n");
    text.append(lan.getElementsByTagName("ide").item(0).getTextContent()+"\n");
   }

注意:导包的时候,别整错了
} catch (ParserConfigurationException e) {

} catch (SAXException e) {

} catch (IOException e) {

}

}
}




package com.example.readassert;


import java.io.BufferedReader;


import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
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;


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


import android.os.Bundle;
import android.renderscript.Element;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;


public class MainActivity extends Activity {
private TextView text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text=(TextView) findViewById(R.id.text);

try {
DocumentBuilderFactory builderFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=builderFactory.newDocumentBuilder();

Document newxml=builder.newDocument();

org.w3c.dom.Element languages=(org.w3c.dom.Element) newxml.createElement("Languages");
languages.setAttribute("cat", "it");

org.w3c.dom.Element lan1=newxml.createElement("lan");
lan1.setAttribute("id","1");

org.w3c.dom.Element name1=newxml.createElement("name");
name1.setTextContent("Java");

org.w3c.dom.Element ide1=newxml.createElement("ide");
ide1.setTextContent("Eclipe");

lan1.appendChild(name1);
lan1.appendChild(ide1);

languages.appendChild(lan1);

org.w3c.dom.Element lan2=newxml.createElement("lan");
lan2.setAttribute("id","2");

org.w3c.dom.Element name2=newxml.createElement("name");
name2.setTextContent("Swift");

org.w3c.dom.Element ide2=newxml.createElement("ide");
ide2.setTextContent("Xcode");

lan2.appendChild(name2);
lan2.appendChild(ide2);

languages.appendChild(lan2);

org.w3c.dom.Element lan3=newxml.createElement("lan");
lan3.setAttribute("id","3");

org.w3c.dom.Element name3=newxml.createElement("name");
name3.setTextContent("c#");

org.w3c.dom.Element ide3=newxml.createElement("ide");
ide3.setTextContent("Visual Studio");

lan3.appendChild(name3);
lan3.appendChild(ide3);

languages.appendChild(lan3);

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());
text.setText(sw.toString());
            

// Document document=builder.parse(getAssets().open("languages.xml"));
//    org.w3c.dom.Element element=document.getDocumentElement();
//    NodeList list=element.getElementsByTagName("lan");
//    for(int i=0;i<list.getLength();++i){
//     org.w3c.dom.Element lan=(org.w3c.dom.Element) list.item(i);
//     text.append(lan.getAttribute("id")+"\n");
//     text.append(lan.getElementsByTagName("name").item(0).getTextContent()+"\n");
//     text.append(lan.getElementsByTagName("ide").item(0).getTextContent()+"\n");
//    }

} catch (ParserConfigurationException e) {
} catch (TransformerConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TransformerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}


0 0