android Studio 解析assets下xml文件并解析

来源:互联网 发布:摄影后期进阶书籍 知乎 编辑:程序博客网 时间:2024/05/17 08:59

android Studio 解析assets下xml文件并解析:

language.xml

  1. <Language cat="it">  
  2.     <lan id="1">  
  3.         <name>Java</name>  
  4.         <ide>Eclipse</ide>  
  5.      </lan>  
  6.      <lan id="2">  
  7.          <name>Swift</name>  
  8.          <ide>Xcode</ide>  
  9.      </lan>  
  10.      <lan id="3">  
  11.          <name>C#</name>  
  12.          <ide>Visual Studio</ide>  
  13.      </lan>  
  14. </Language>  

MainActivity.java解析代码:

  1. import java.io.IOException;  
  2. import java.io.InputStream;  
  3. import javax.xml.parsers.DocumentBuilder;  
  4. import javax.xml.parsers.DocumentBuilderFactory;  
  5. import javax.xml.parsers.ParserConfigurationException;  
  6. import org.w3c.dom.Document;  
  7. import org.w3c.dom.Element;  
  8. import org.w3c.dom.NodeList;  
  9. import org.xml.sax.SAXException;  
  10. import android.app.Activity;  
  11. import android.os.Bundle;  
  12. import android.widget.TextView;  
  13.   
  14. public class MainActivity extends Activity {  
  15.       
  16.     private TextView tv_show;  
  17.     @Override  
  18.     protected void onCreate(Bundle savedInstanceState) {  
  19.         super.onCreate(savedInstanceState);  
  20.         setContentView(R.layout.activity_main);  
  21.         tv_show = (TextView) findViewById(R.id.tv_show);  
  22.           
  23.         try {  
  24.             //传入文件名:language.xml;用来获取流  
  25.             InputStream is = getAssets().open("language.xml");  
  26.             //首先创造:DocumentBuilderFactory对象  
  27.             DocumentBuilderFactory dBuilderFactory = DocumentBuilderFactory.newInstance();  
  28.             //获取:DocumentBuilder对象  
  29.             DocumentBuilder dBuilder = dBuilderFactory.newDocumentBuilder();  
  30.             //将数据源转换成:document 对象  
  31.             Document document = dBuilder.parse(is);  
  32.             //获取根元素  
  33.             Element element = (Element) document.getDocumentElement();  
  34.             //获取子对象的数值 读取lan标签的内容  
  35.             NodeList nodeList = element.getElementsByTagName("lan");  
  36.             for (int i = 0; i < nodeList.getLength(); i++) {  
  37.                 //获取对应的对象  
  38.                 Element lan = (Element) nodeList.item(i);  
  39.                 //lan.getAttribute("id") 获取id的值  
  40.                 tv_show.append(lan.getAttribute("id")+"\n");  
  41.                 //获取name标签下的内容  
  42.                 tv_show.append(lan.getElementsByTagName("name").item(0).getTextContent()+"\n");  
  43.                 //获取ide标签下的内容  
  44.                 tv_show.append(lan.getElementsByTagName("ide").item(0).getTextContent()+"\n");  
  45.             }  
  46.               
  47.         } catch (IOException e) {  
  48.             e.printStackTrace();  
  49.         } catch (ParserConfigurationException e) {  
  50.             e.printStackTrace();  
  51.         } catch (SAXException e) {  
  52.             e.printStackTrace();  
  53.         }  
  54.     }  
  55. }  

项目下载

原创粉丝点击