Xml SAX解析器和来自网络的文件

Xml SAX解析器和来自网络的文件,xml,parsing,sax,Xml,Parsing,Sax,各位开发者好。。。为了确定,我想问这个问题: XML SAX解析器如何访问它正在解析的.XML文件?它是否从给定的URL下载整个文件 中断解析有什么用,这样我们可以保存几千字节的数据吗 设想一个包含有序项的大型.xml文件。我们只需要顶部的几个项目,其他项目可能已经被处理和存储。当我在特定点停止解析时,我会保存一些数据(当然我会节省一些时间) 感谢您的回答。SAX解析器实现存在于多种语言中,答案可能是特定于实现的。但至少普通Java实现可以从流中读取xml,而不需要下载整个内容 调用JavaSA

各位开发者好。。。为了确定,我想问这个问题:

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

中断解析有什么用,这样我们可以保存几千字节的数据吗

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


感谢您的回答。

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

调用JavaSAX解析器从
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
)和
sourceURL
是URL的
java.net.URL

当然,所有这些都必须包含在一个尝试捕获


您的处理程序可以抛出一个异常信号,表明它已到达您要分析的内容的末尾,通过捕获该异常,您的程序可以干净地完成,而无需读取整个流。

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

调用JavaSAX解析器从
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
)和
sourceURL
是URL的
java.net.URL

当然,所有这些都必须包含在一个尝试捕获


您的处理程序可以抛出一个异常,表明它已到达您要分析的内容的末尾,通过捕获该异常,您的程序可以干净地完成,而无需读取整个流。

谢谢,我正在考虑Java实现。。。我只是想确定一下,你有没有支持这一点的论文或比较?我有支持标准Java实现的代码。请参阅最新编辑中的代码片段。谢谢,我正在考虑Java实现。。。我只是想确定一下,你有没有支持这一点的论文或比较?我有支持标准Java实现的代码。请参阅最新编辑中的代码段。