SAX解析器,并从联播网,

问题描述:

你好伙伴开发...只是为了确保,我要问这个问题一个文件:SAX解析器,并从联播网,

如何XML SAX解析器访问.xml文件被解析?它是否从给定的URL下载整个文件?

有没有破解解析的任何用法,以便我们可以保存一些千字节的数据?

想象一个带有订购商品的大型.xml文件。我们只需要从顶部的几个项目,其他项目可能已经被处理和存储。当我在特定点停止解析时,我会保存一些数据(当然,我会节省一些时间)。

感谢您的回答。

SAX解析器实现以多种语言存在,答案可能是特定于实现的。但至少常见的Java实现可以从流中读取xml,而不需要下载整个东西。

一个Java SAX解析器的调用从URL解析通常类似于

 SAXParserFactory spf = SAXParserFactory.newInstance(); 
     SAXParser sp = spf.newSAXParser(); 
     XMLReader xr = sp.getXMLReader(); 
     MyHandler handler = new MyHandler(); 
     xr.setContentHandler(handler); 
     xr.parse(new InputSource(sourceUrl.openStream())); 

在处理MyHandler是你定义实现org.xml.sax.ContentHandler类(最容易通过扩展org.xml.sax.helpers.DefaultHandler)和sourceURLjava.net.URL为URL。

当然,这一切都被封闭在一个try-catch ...

你的处理程序可以抛出一个异常信号,它已经达到了你想要什么解析结束,并通过捕获该异常,您的程序可以干净地完成而不需要读取整个流。

+0

谢谢,我在想Java的实现......只是想确定一下,你有没有任何文件或比较支持它? – Hawk 2012-02-07 12:30:44

+0

我有支持关于标准Java实现的声明的代码。在最新的编辑中看到片段。 – 2012-02-07 13:03:02

+0

我明白了......非常感谢你:) – Hawk 2012-02-07 14:10:51