在看activity setContentView(@LayoutRes int layoutResID) 时使用的是XmlPull 解析 回顾了一下
首先创建一个文件 举例文件名 text.xml,放到了assets 目录下
<?xml version="1.0" encoding="utf-8"?> <company> <staff group="1" id="1"> <name>张三</name> <sex>男</sex> <age>26</age> <email>zhangsan@163.com</email> <birthday>1991-06-08</birthday> <memo>今晚加班</memo> </staff> <staff group="3" id="2"> <name>李四</name> <sex>女</sex> <age>26</age> <email>lisi@163.com</email> <birthday>1991-06-08</birthday> <memo>下班前会议</memo> </staff> </company>
解析类,常用方法解析类中添加注释比较常用的进行列举
public class XmlPull { private static final String TAG = "XmlPull "; public static void xmlPares(Context context) { InputStream in = null; try { //创建解析工厂 XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); XmlPullParser pullParser = factory.newPullParser(); in = context.getAssets().open("test.xml"); //此处随意使用input流 pullParser.setInput(in, "utf-8"); int type = pullParser.getEventType(); while (type != XmlPullParser.END_DOCUMENT) { switch (type) { case XmlPullParser.START_TAG: case XmlPullParser.END_TAG: String tagName = pullParser.getName();//获取标签的名称 int count = pullParser.getAttributeCount();//属性个数 for (int i = 0; i < count; i++) { String name = pullParser.getAttributeName(i);//属性名称 String value = pullParser.getAttributeValue(i);//属性值 Log.e(TAG, "name: " + name + " value: " + value); } Log.e(TAG, "tag : " + tagName); break; case XmlPullParser.TEXT: String text = pullParser.getText();//获取文本 Log.e(TAG, "text : " + text); break; } type = pullParser.next(); } } catch (Exception e) { e.printStackTrace(); } finally { if (in != null) { try { in.close(); } catch (Throwable ignore) { } } } } }