我有一个包含一些字符串的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。有谁知道怎么做这个测试?
答案 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