2013-12-18 79 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