Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SAX XMLParser不工作_Java_Android_Xml_Parsing_Sax - Fatal编程技术网

Java SAX XMLParser不工作

Java SAX XMLParser不工作,java,android,xml,parsing,sax,Java,Android,Xml,Parsing,Sax,我已经学习了多个关于如何为Android平台设置SAXXML解析器的在线教程,但是没有一个是有效的!有什么问题吗?这是我的密码: 进口: import java.net.URL; import java.util.ArrayList; import java.util.List; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.Attribute

我已经学习了多个关于如何为Android平台设置SAXXML解析器的在线教程,但是没有一个是有效的!有什么问题吗?这是我的密码:

进口:

import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

import android.app.Activity;
import android.util.Log;
这段代码是在一个我知道会被调用的方法中,但是为什么logcat会显示“测试”


谢谢你的帮助

检查日志,查看是否有大量黄色文本。它可能会通知您导致SAX解析器崩溃的任何错误。

这是一个名称空间问题

SAXParserFactory SPF = SAXParserFactory.newInstance();
SAXParser SP = SPF.newSAXParser();
正在给您一个不能正确处理名称空间的解析器

如果你为“链接”改变SistelEnter来检查<代码> qNeX/COD>,你的代码会起作用,但这是一种创可贴修复。

此文档中有名称空间,但此元素位于为文档指定的默认名称空间中

您应该告诉解析器工厂为您提供一个名称空间感知解析器:

SAXParserFactory SPF = SAXParserFactory.newInstance();
SPF.setNamespaceAware(true);
SAXParser SP = SPF.newSAXParser();

然后,您将在不更改
startElement
方法的情况下获得预期结果,除非您必须查找正确的值,即检查“link”而不是“link”。

您的xml是否包含名为“link”的标记?如果您发布xml输入,我们可能会有更好的机会诊断这个问题。是的,确实如此。只要打开这个,点击Firefox中的CTRL-U,点击搜索结果的顶部,就可以查看页面源代码。即使您从if语句外部登录(因此每当解析器命中一个对象时),您仍然没有得到任何输出。它可能没有崩溃,只是没有找到匹配项。我找到了问题所在!我试图在主线程上运行这个,java不喜欢这样!抱歉我的错误,因为我对Android开发非常陌生。非常感谢您的耐心和帮助!
SAXParserFactory SPF = SAXParserFactory.newInstance();
SPF.setNamespaceAware(true);
SAXParser SP = SPF.newSAXParser();