在Android中使用SAX从基于xmlns的元素中解析属性

时间:2011-03-09 01:43:29

标签: android xml-namespaces sax

我正在尝试解析此xml file,但我找不到解析url属性的方法 <media:thumbnail width="66" height="49" url="http://news.bbcimg.co.uk/media/images/41447000/jpg/_41447190_exomars66esa.jpg"/>元素。我在处理程序类

中尝试使用以下startElement方法
public void startElement(String Uri, String localName, String qName, 
Attributes atts) throws SAXException { 
if (localName.equals("channel")) {
        this.in_channel = true;
}else if (localName.equals("item")) {
        this.in_item = true;
}else if (localName.equals("title")) {
        this.in_title = true;
}else if (localName.equals("media:thumbnail")) {
        String attrValue = atts.getValue("url");
        item.setLink(attrValue);
       }
}

我也试过if (localName.equals("media")但是没有成功 我可以解析像<link url="http://achdre.freehostia.com/example.xml"/>这样的元素,但不能解析我上面发布的元素。提前谢谢

1 个答案:

答案 0 :(得分:2)

您需要使用qName。

来自doc

localName - 本地名称(不带前缀),如果没有执行命名空间处理,则为空字符串。

qName - 限定名称(带前缀),如果限定名称不可用,则为空字符串。

本地名称基本上剥离了名称空间,所以如果你愿意的话,你也可以做“缩略图”,它也会匹配。