【发布时间】:2018-08-22 05:13:01
【问题描述】:
我需要解析AndroidManifest.xml 以检索一些通过PackageManager 无法获得的附加信息。
我有以下代码:
try
{
AssetManager assetManager = createPackageContext(getPackageName(), 0).getAssets();
XmlResourceParser xml = assetManager.openXmlResourceParser("AndroidManifest.xml");
int eventType = xml.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT)
{
if(eventType == XmlPullParser.START_DOCUMENT) {
Log.d(TAG, "START_DOCUMENT");
} else if(eventType == XmlPullParser.START_TAG) {
Log.d(TAG, "START_TAG: " + xml.getName());
} else if(eventType == XmlPullParser.END_TAG) {
Log.d(TAG, "END_TAG: " + xml.getName());
} else if(eventType == XmlPullParser.TEXT) {
Log.d(TAG, "TEXT: " + xml.getText());
}
eventType = xml.next();
}
xml.close();
}
catch ( XmlPullParserException
| PackageManager.NameNotFoundException
| IOException ignore) { }
我希望从 XML 文件中获取所有标签,但我得到的只是:
START_DOCUMENT
START_DOCUMENT
START_TAG: manifest
END_TAG: manifest
...这不是我所期望的。
我不知道为什么START_DOCUMENT 会出现两次,但最困扰我的是我在<manifests> 标签内没有任何标签。
我的解析有问题还是这些标签根本不可用?
【问题讨论】:
标签: java android xml parsing xml-parsing