本文實(shí)例為大家分享了Android讀取XML文件中數(shù)據(jù)的具體代碼,供大家參考,具體內(nèi)容如下
讀取XML中存儲(chǔ)的數(shù)據(jù)。將xmlfile.xml存放在assets文件夾中。在activity_main.xml中創(chuàng)建一個(gè)textview,用來顯示讀取到的數(shù)據(jù)。
XML文件內(nèi)容如下:xmlfile.xml
<?xml version="1.0" encoding="UTF-8"?><Languages cat="it"> <lan id="1"> <name>Java</name> <ide>Eclipse</ide> <type>面向?qū)ο?lt;/type> </lan> <lan id="2"> <name>C</name> <ide>VS</ide> <type>面向過程</type> </lan> <lan id="3"> <name>C#</name> <ide>vs</ide> <type>面向?qū)ο?lt;/type> </lan> </Languages>
MainActivity.java
使用的是W3C的包。
用builderfactory來創(chuàng)建builder。并用builder打開assets的xml文件,創(chuàng)建出document。
讀出document的element。從element中獲取nodelist,再得到單個(gè)的node。注意要從item中取出字符內(nèi)容。
import java.io.IOException; import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException; import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.NodeList;import org.xml.sax.SAXException; import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;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.text); try { DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder; builder = builderFactory.newDocumentBuilder(); Document document = builder.parse(getAssets().open("xmlfile.xml")); Element element = document.getDocumentElement(); NodeList nodeList = element.getElementsByTagName("lan"); text.append("/n"); for (int i = 0; i < nodeList.getLength(); i++) { Element lan = (Element) nodeList.item(i); text.append(lan.getAttribute("id") + "/n"); text.append(lan.getElementsByTagName("name").item(0).getTextContent() + " "); text.append(lan.getElementsByTagName("ide").item(0).getTextContent() + " "); text.append(lan.getElementsByTagName("type").item(0).getTextContent() + " "); text.append("/n"); } } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
網(wǎng)友關(guān)注