微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

读取与解析XML数据

读取与解析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;
	@Override
	protected 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 block
			e.printstacktrace();
		} 
	}

	@Override
	public 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>

原文地址:https://www.jb51.cc/xml/295221.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。