XMLPullParser属性的Android测试

时间:2013-12-18 08:06:32

标签: java android xml

我有一个包含一些字符串的XML文件:

<string>foo</string>

并且一些字符串包含href属性:

<string href="http://www.google.com/">foo2</string>

我正在使用XMLPullParser在我的Android应用程序中解析此XML。但是,我需要能够测试xml元素是否包含href属性。或任何属性。 我试过用这个:

private boolean testForHref(String tag) throws IOException, XmlPullParserException{
    try{
        parser.getAttributeValue(NULL, tag);
        System.out.println("href attribute is here!");
        return true;
    }catch (Exception e){
        System.out.println("href attribute is not here!");
        return false;
    }

}

但这总是会返回false。有谁知道怎么做这个测试?

1 个答案:

答案 0 :(得分:4)

使用

String relType = parser.getAttributeValue(null, "href");

有关详情,请参阅下面的解析器示例中的readLink方法

http://developer.android.com/training/basics/network-ops/xml.html

示例:

XML

<mojiva> // root tag
<string href="10.80.30.10/tracker">Issue tracker</string> // string tag with attribute
</mojiva>

解析

  parser.require(XmlPullParser.START_TAG, ns, "mojiva");
   while (parser.next() != XmlPullParser.END_TAG) {
       if (parser.getEventType() != XmlPullParser.START_TAG) {
           continue;
       }
       String name = parser.getName();
       if (name.equals("string")) {
           String relType = parser.getAttributeValue(null, "href");
           Log.i("....................","Hello......"+relType);

       } else {
           skip(parser);
       }
   } 

日志

12-18 03:26:41.052: I/....................(1417): Hello......10.80.30.10/tracker