加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

读取与解析XML数据

发布时间:2020-12-16 02:23:32 所属栏目:百科 来源:网络整理
导读:读取与解析XML数据 language.xml数据一定要在assets文件中 ?xml version="1.0" encoding="utf-8"?Languages lan id="1" nameJava/name ideeclipse/ide /lan lan id="2" nameswift/name idexcode/ide /lan lan id="3" nameC#/name idevisual Studio/ide /lan/

读取与解析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>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读