Java SAX XMLParser不工作
我已经学习了多个关于如何为Android平台设置SAXXML解析器的在线教程,但是没有一个是有效的!有什么问题吗?这是我的密码: 进口: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
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();