读取与解析XML数据

来源:互联网 发布:jquery 对象数组 编辑:程序博客网 时间:2024/05/19 04:28

读取与解析XML数据





language.xml数据一定要在assets文件中
<?xml version="1.0" encoding="utf-8"?><Languages>    <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>
MainActivity.java
<span style="font-size:14px;">package com.example.xmltest;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.TransformerFactory;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.NodeList;import org.xml.sax.SAXException;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.widget.TextView;public class MainActivity extends Activity {TextView   text;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);text=(TextView) findViewById(R.id.tv);try {DocumentBuilderFactory  builderFactory=DocumentBuilderFactory.newInstance();DocumentBuilder   build=builderFactory.newDocumentBuilder();/*Document document=build.parse(getAssets().open("language.xml"));//这部分注释的代码是读取assets文件里的xml数据Element element=document.getDocumentElement(); //获取根元素NodeList  list=element.getElementsByTagName("lan");//获取跟结点for(int i=0;i<list.getLength();i++){  Element  lan= (Element) list.item(i);  //获取xml中第一条数据  text.append(lan.getAttribute("id")+"\n");  text.append(lan.getElementsByTagName("name").item(0).getTextContent()+"\n");  text.append(lan.getElementsByTagName("ide").item(0).getTextContent()+"\n");}*/                            //下面这部分创建xmL数据Document newxml=build.newDocument();Element languages=newxml.createElement("Languages");languages.setAttribute("cat", "it");  //创建跟结点Element  lan1=newxml.createElement("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);Element  lan2=newxml.createElement("lan");lan2.setAttribute("id", "2");Element  name2=newxml.createElement("name");name2.setTextContent("Swift");Element  ide2=newxml.createElement("ide");ide2.setTextContent("C#");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));text.setText(sw.toString());//编写完xml后,输出太页面上} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();} }@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}</span>
activity_main.xml
<span style="font-size:14px;"><RelativeLayout 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"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context=".MainActivity" >    <TextView        android:id="@+id/tv"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentTop="true"        android:layout_centerHorizontal="true"        android:layout_marginTop="140dp"        android:textSize="20dp" /></RelativeLayout></span>


0 0
原创粉丝点击