当前位置:  技术问答>java相关

对XML文档解析方法大收集

    来源: 互联网  发布时间:2015-07-30

    本文导语:  小弟在学习过程中,遇到了几种解析方法,弄的有点晕,望各位仁兄解疑: 1: SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser sp = spf.new.SAXParser(); DefaultHandler handler = new DefaultHandlerProxy(er,dh,ch,eh); sp.parse(file,handler); ...

小弟在学习过程中,遇到了几种解析方法,弄的有点晕,望各位仁兄解疑:
1:

SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.new.SAXParser();
DefaultHandler handler = new DefaultHandlerProxy(er,dh,ch,eh);
sp.parse(file,handler);

2.

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.newDocument();
doc.parse(file);

请问,还有没有别的其他的解析方法呢?如果有的话,能不能详细的写下来呢?并做一个简略的说明?我想总结一下,对比一下,然后我想弄清楚他们都用在什么地方,有什么区别.(第一个方法是不是用在JAXP,第二个用在JDOM?我感觉在非JAXP中也可以用第一种方法,是不是?)
为什么要用工厂(Factory)呢?工厂在整个解析过程中起什么作用,是不是可以为工厂添加某些操作,而这些操作只能在工厂里添加吗?如下(对于第二种方法):
dbf.setValidating(validation);
dbf.setNameSpaceAware(true);
利用工厂的目的是不是就在这?

另外,我在书上看到在例子中有
.java文件
.dtd文件
.xml文件
.ent文件
在ENT文件中存放的是



等等,但没有别的东西,这个ENT文件是什么东东?它和DTD文件很相似啊,但为什么会用ENT呢?

小弟这里谢过了!!!

|
给你一个最简单的吧
class MyContentHandler extends DefaultHandler

XMLParser parser = new SAXParser()
parser.setContentHandler(new MyContentHandler());
parser.parse(uri)

DOMParser parser = new DOMParser();
parser.parse(uri);
Document doc = parser.getDocument()

|
你提到1,2方法都是用JAXP的api进行解析。如果用具体的解析器进行解析,代码要根据具体的解析器来定,比如:Xerces,JDOM,XML4J等等...
用工厂方法的原因在于使你的解析代码独立于具体的解析器。如果要换一个其他解析器,只需将它置于classpath,而不用改动任何代码。

|
XML Pull Parser(XPP),它对XML文档的性能是最佳的。
Xml Pull Parser (in short XPP) is a streaming pull XML parser and should be used when there is a need to process quickly and efficiently all input elements (for example in SOAP processors). 
去这里看看吧:http://www.extreme.indiana.edu/xgws/xsoap/xpp/

|
我只知道有DOM和SAX两种

    
 
 

您可能感兴趣的文章:

  • windows下tinyxml.dll下载安装使用(c++解析XML库)
  • 请问各位:我用SUN公司的JAXP开发包解析XML文档,可不知道对XML解析后如何将结果写回文件中。请各位熟悉Java和XML的高手帮忙。
  • 基于Python的Html/xml解析库Beautiful Soup 4.2.1发布
  • 请问怎样手工的解析XML文件啊.( 不借助任何的xml解析器)急!!!
  • Python下Html/xml解析库Beautiful Soup快速入门教程
  • XML解析器 Mini-XML
  • python下xml解析库lxml最新版下载安装以及代码示例
  • java解析xml之jdom解析xml示例分享
  • python对XML的解析方法(SAX,DOM,ElementTree)介绍
  • XML解析器 Expat XML Parser
  • 关于xml解析速度问题!用森么解析xml最快!xml为小文件!附源程序(JDOM)
  • java解析xml之dom解析xml示例分享
  • JavaScript的XML解析包 xml2array()
  • Java的XML解析器 xml-utilities
  • java解析xml之dom4j解析xml示例分享
  • 在眾多的java xml parser中,那種解析器速度最快(xml 文件較大)
  • 如何边下载XML文件并对其进行解析呢?
  • SAX模式的XML解析器 fasterxml
  • xml用什么来解析,用的是什么包?
  • jquery解析XML字符串和XML文件的方法说明
  • java解析xml用什么包?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • javax.xml中用什么方法和对象来接收request中的xml文档,急!
  • 使用标准SAX解析XML文档如何获取文档编码信息及约束它的dtd文件路径.
  • XML文档比较工具 ExamXML
  • 高手请进!请教java把TXT或XML或PDF格式的文档转换成word格式文档的问题
  • 请教,如何使用JDOM操作XML文档?
  • 请问各位大虾: 如何用java读取一个xml文档
  • 谁有xml和libxml2的说明文档,分享一下吧
  • 关于libxml2解析xml文档的问题
  • 每次从XML文档中解析出的消息数量不确定,怎么放到JTable显示.
  • 两篇非常好的关于xml的sax和dom的文档。
  • 各位,谁知道哪里有 IBM 的 XML4J 的教程或相关技术文档,急救!
  • JAVA 里用XSL解析XML文档时中文问题的解决,请教各位!
  • 怎样用JAXP高效的比较两个XML文档是否内容相同?急!!有价值必给分!!!
  • 有谁有SAXParser XML方面的文档,请发给我一些。
  • 为什么Mozilla无法打开xml文档??
  • Mozilla如何打开xml文档???!! 急!!
  • XML文档解析器 Digester
  • 奇怪:我的xml文档encoding属性为gb2312,可是实例化为document后,被改为UTF-8
  • java 获取当前路径下的所有xml文档的方法
  • 用简单的XML生成格式丰富的文档 XDOC
  • java命名空间javax.xml类xmlconstants的类成员方法: xml_ns_prefix定义及介绍
  • 如何新建立一个XML文件并且把别的XML文件引入到这个XML文件中(再线等待)
  • java命名空间javax.xml类xmlconstants的类成员方法: xml_ns_uri定义及介绍
  • 看了半本,是关于java与xml编程的书,它用xml来代替数据库,试问,xml真的能开题数据库吗?(在性能方面)
  • java命名空间javax.xml.transform类outputkeys成员方法: omit_xml_declaration定义参考
  • XML 能够 include吗?如何拆分很长的XML
  • java命名空间javax.xml类xmlconstants的类成员方法: xml_dtd_ns_uri定义及介绍
  • Java 和XML 编程时,XML的DTD 放到哪?
  • java命名空间javax.xml类xmlconstants的类成员方法: w3c_xml_schema_ns_uri定义及介绍
  • XML处理API VTD-XML
  • java命名空间javax.xml类xmlconstants的类成员方法: w3c_xml_schema_instance_ns_uri定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3