android sax 不解析 "dc:creator"?

标签 android xml sax

希望有人可以提供一些指导 - 我一直在使用带有多个提要的 android sax 解析器。现在,当我想解析包含以下内容的项目时:

<category>category</category>
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">creator</dc:creator>
<dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2011-10-13T07:00:15Z</dc:date>
<geo:lat>51.95271682739258</geo:lat>
<geo:long>-0.21096819639205933</geo:long>

我可以获取“category”标签的值,但其他标签则无法获取。

所使用的代码遵循 http://www.ibm.com/developerworks/opensource/library/x-android/ 中的示例,特别是解析标签的 fragment :

Element item = channel.getChild("item");

item.getChild("category").setEndTextElementListener(new EndTextElementListener() {
  public void end(String body) {
   Log.e("mydebug","cat>>"+body+"<");
  }
});
item.getChild("dc:creator").setEndTextElementListener(new EndTextElementListener() {
  public void end(String body) {
   Log.e("mydebug","creator>>"+body+"<");
  }
});

生成此输出:

10-13 14:13:12.763: ERROR/mydebug(609): cat>>category<
10-13 14:13:12.763: ERROR/mydebug(609): cat>>category2<

我正在使用以下内容:

import android.sax.Element;
import android.sax.EndElementListener;
import android.sax.EndTextElementListener;
import android.sax.RootElement;
import android.util.Log;
import android.util.Xml;

我还缺少什么吗? 我唯一能猜测的是标签中的“:”给我带来了问题,但我找不到类似问题的任何示例。

非常感谢您的阅读。

最佳答案

在 DefaultHandler 中使用 startElement() 和 endElement() 方法时,本地名称和限定名称值都会传入。请确保检查“dc:creator”等内容的限定名称,否则它们不会匹配。

请参阅此处的官方文档:http://developer.android.com/reference/org/xml/sax/helpers/DefaultHandler.html#startElement%28java.lang.String,%20java.lang.String,%20java.lang.String,%20org.xml.sax.Attributes%29

此外,您可以考虑使用 XML Pull Parser,因为它比 SAX 更轻,并且可能更适合您的需求:http://developer.android.com/reference/org/xmlpull/v1/XmlPullParserFactory.html

关于android sax 不解析 "dc:creator"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7755859/

相关文章:

java - Android、Java 以正弦波移动手榴弹

java - 从Android上传图片到PHP服务器

java - 如何将 XSD 类型导入根模式?

android - 修复 arraylist 的适配器构造函数

xml - 如何使用 xpath (1.0) 迭代/选择元素对?

python - 使用 python 请求发布 XML

php - Magento 在静态 block 中调用子 html

xml - cvc-complex-type.2.4.a : Invalid content was found starting with element 'MarkupListURI' . 预期为 '{MarkupDeleteURI}' 之一

xml - 我应该如何在 Perl 中解析大型 XML 文件?

android - 以编程方式组合几种类型的xml布局android