2013-12-18 36 views
1

我有一些字符串的XML文件:XMLPullParser Android的测试属性

<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。有谁知道如何做这个测试?

回答

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 
+0

这使返回这个空:<字符串HREF = “http://10.80.30.10/tracker”>问题跟踪 –

+0

@BlackMagic它会奏效。我不知道你是如何做我们的解析。 – Raghunandan

+0

@BlackMagic检查我试过的编辑之前发布它 – Raghunandan