JAVA中停止SAX解析XML文件

在JAVA中利用SAX解析文件,当找到合适的数据时,除了手动抛出异常,还有方法停止SAX继续解析XML吗?手动抛出异常后程序会终止,重写fatalError没用,应该如何捕捉?

在java环境下读取xml文件的方法主要有4种:DOM、SAX、JDOM、JAXB1. DOM(Document Object Model) 此方法主要由W3C提供,它将xml文件全部读入内存中,然后将各个元素组成一棵数据树,以便快速的访问各个节点 。 因此非常消耗系统性能 ,对比较大的文档不适宜采用DOM方法来解析。 DOM API 直接沿袭了 XML 规范。每个结点都可以扩展的基于 Node 的接口,就多态性的观点来讲,它是优秀的,但是在 Java 语言中的应用不方便,并且可读性不强。 实例:import javax.xml.parsers.*; //XML解析器接口 import org.w3c.dom.*; //XML的DOM实现 import org.apache.crimson.tree.XmlDocument;//写XML文件要用到DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); //允许名字空间 factory.setNamespaceAware(true); //允许验证 factory.setValidating(true); //获得DocumentBuilder的一个实例try catch (ParserConfigurationException pce) //解析文档,并获得一个Document实例。 try catch (DOMException dom) catch (IOException ioe) //获得根节点StuInfoElement elmtStuInfo = doc.getDocumentElement(); //得到所有student节点 NodeList nlStudent = elmtStuInfo.getElementsByTagNameNS( strNamespace, "student");for (……)
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-03-27
手动抛出异常后程序会终止
这个应该是你 对异常没有捕捉好。

如果你不想用这个办法,那你就设置一个flag
boolean flag = false;

当找到了数据以后
flag = true;

在sax解析的每一个方法 最前面加一个
if(flag){
return;
}

这样可以减少运行的时间,想停下来,是没有办法的。本回答被网友采纳

JAVA异常
在JAVA编程中,遇到org.xml.sax.SAXParseException异常,通常是因为XML解析过程中出现了问题,具体表现为"Content is not allowed in prolog"。这种情况通常发生在XML文件使用UTF-8编码,但经过Ultraedit等编辑器处理后,可能会在无BOM(Byte Order Mark)头的文件中添加BOM。DOM4j(版本1.3)并不支持这种...

SAX解析解析初步
在JAVA中处理XML数据,通常有两种主要的解析方法:DOM和SAX。DOM,作为W3C推荐的标准,其工作原理是将整个XML文档加载到内存中,形成一个树状结构,每个节点代表文档的一个部分。这种设计的优势在于提供了直观的文档操作接口,但存在一个显著的问题,即内存消耗大。当需要解析的XML文件过大,或者我们只需要...

...1; columnNumber: 1; java sax解析xml文档遇到的问题
1 、火狐浏览器报错 2 2、还是safari提醒比较人性化 3、可以直接解决问题,比如进行utf-8编码,或者把中文进行url编码 4、不会再报错了,打开sitemap.xml时 5、safafi打开 6、sitemap效果 7、实际在网页中打开效果

sax解析xml文件的优点
作为接口,sax是事件驱动型xml解析的一个标准接口。解析效率高,占用内存少。可以随时停止解析,不能载入整个文档到内存。不能写入xml5.sax解析xml文件,采用的是事件驱动。pull解析xml文件的方式,与sax解析xml文件的方式大致相同。解析方式 他们都是基于事件驱动的,页是android中默认的解析方式,更适用于...

java中DOM解析XML文件奇葩的错误 java.lang.NullPointerException_百 ...
代码如下:public class LoadXml extends Activity { private final static String TAG="LoadXml";public static Context context = null;Document document = null;NodeList childsNodes = null;DocumentBuilderFactory factory = null;DocumentBuilder builder = null;InputStream inputStreams = null;Override...

java sax如何循环接收xml文件中的元素
回答:参考资料:http:\/\/www.blogjava.net\/lcs\/archive\/2007\/11\/22\/162304.html

org.xml.sax.SAXParseException 解析xml格式字符串出错
org.xml.sax.SAXParseException 解析xml格式字符串出错是设置错误造成的,解决方法为:1、打开电脑上的任意浏览器。2、打开浏览器以后,使用搜索引擎搜索“XML转JSON在线工具”关键词。3、在搜索结果中,选择且进入一个在线的转换工具网页。4、在工具网页中,在指定的XML文本框中输入XML字符串。5、完成XML...

目前在Java中几种常用的XML解析器的比较
事实上,应用程序甚至不必解析整个文档;它可以在某个条件得到满足时停止解析。一般来说,SAX 还比它的替代者 DOM 快许多。另一方面,由于应用程序没有以任何方式存储数据,使用 SAX 来更改数据或在数据流中往后移是不可能的。2、DOM 以及广义的基于树的处理具有几个优点。首先,由于树在内存中是持久的...

求Java解析xml的四种 方法的代码 dom sax jdom dom4j
事实上,应用程序甚至不必解析整个文档;它可以在某个条件得到满足时停止解析。一般来说,SAX还比它的替代者DOM快许多。 选择DOM还是选择SAX? 对于需要自己编写代码来处理XML文档的开发人员来说, 选择DOM还是SAX解析模型是一个非常重要的设计决策。 DOM采用建立树形结构的方式访问XML文档,而SAX采用的事件模型。 DOM解析...

java解析xml文件一旦异常,则无法删除该xml文件,该怎样操作
如果你需要不管解析成功与否,都删除文件的话,可以考虑把删除动作放到异常处理的finally块中。

相似回答