android - XmlPullParser getAttributeValue 返回 null

标签 android xml xml-parsing xmlpullparser

我的 assets/xml 文件夹中存储了以下 XML 结构:

<?xml version="1.0" encoding="utf-8"?>
<homescreen>
    <homeitem name="Name1"
              subtext="Description1"
              icon="iconresource1" />
    <homeitem name="Name2"
              subtext="Description2"
              icon="iconresource2" />
    <homeitem name="Name3"
              subtext="Description3"
              icon="iconresource3" />
</homescreen>

我正在使用 XmlPullParser 读取每个单独的 homeitem:

int event;
String TAG_ITEM = "homeitem";
while ((event = parser.next()) != XmlPullParser.END_DOCUMENT) {
    if (event == XmlPullParser.START_TAG) {
        String tag = parser.getName();
        if (TAG_ITEM.equals(tag)) {
            // Works - Logs "Name1"
            Log.d(LOG_NAME, parser.getAttributeValue(0));

            // Works - Logs "name"
            Log.d(LOG_NAME, parser.getAttributeName(0));

            // Works - Logs ""
            Log.d(LOG_NAME, parser.getAttributeNamespace(0));

            // Fails - Logs null
            Log.d(LOG_NAME, parser.getAttributeValue(XmlPullParser.NO_NAMESPACE, "name"));
        }
    }
}

我的问题是:使用 getAttributeValue(String, String) 总是返回 null。使用 getAttributeValue(Integer) 效果很好。我做错了什么?

设备:Nexus 10、Stock KitKat 4.4

最佳答案

试试这个:

parser.getAttributeValue(null, "name"); 

关于android - XmlPullParser getAttributeValue 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20216243/

相关文章:

c# - 后台服务不工作 Xamarin.Android

xml - 我注定要开发XML吗?

java - XML 解析 - XPath 表达式尝试访问第二个 for 循环内的 xml 元素

Python lxml - 查找标签 block 修正

java - 使用 commons-digester XML 规则时,如何排除一些不需要的 XML 属性?

java - 如何刷新 fragment 'onResume?'

java - Android 中针对 Salesforce Web 服务的 SSL 证书问题

php - PHP 网站的最佳 XML DB?

c# - 在 XDocument 中递归查找节点

android - 在 DrawerLayout 上方放置一个 View (在抽屉上方)