Android XML数据解析简单示例
1、创建XML数据
在android工程目录中res/目录下创建raw文件夹,在raw文件夹内创建data.xml。
<?xmlversion="1.0"encoding="utf-8"?> <data> <class> <cstudentNum="1">Android</c> <cstudentNum="2">IPhone</c> </class> </data>
2、XML解析代码
importjava.io.IOException; importjava.io.InputStream;
importjavax.xml.parsers.DocumentBuilder; importjavax.xml.parsers.DocumentBuilderFactory; importjavax.xml.parsers.ParserConfigurationException;
importorg.w3c.dom.Document; importorg.w3c.dom.NamedNodeMap; importorg.w3c.dom.Node; importorg.w3c.dom.NodeList; importorg.xml.sax.SAXException;
importandroid.os.Bundle; importandroid.app.Activity;
publicclassMainActivityextendsActivity{
@Override protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); InputStreamis=getResources().openRawResource(R.raw.data); try{ byte[]bytes=newbyte[is.available()]; is.read(); StringXMLStr=newString(bytes,"utf-8"); is.reset(); System.out.println(XMLStr); DocumentBuilderbuilder=DocumentBuilderFactory.newInstance().newDocumentBuilder(); Documentdoc=builder.parse(is); Nodenode=doc.getFirstChild(); System.out.println("第一个子节点"+node.getNodeName()); NodeListlist=doc.getElementsByTagName("c"); NamedNodeMapmap; for(inti=0;i<list.getLength();i++) { node=list.item(i); map=node.getAttributes(); System.out.println(node.getTextContent()+" studentNum "+map.getNamedItem("studentNum").getNodeValue()); } }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }catch(ParserConfigurationExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }catch(SAXExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } }