对XML文档解析方法大收集

peppi 2002-07-25 11:59:26
小弟在学习过程中,遇到了几种解析方法,弄的有点晕,望各位仁兄解疑:
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文件中存放的是
<!NOTATION ******>
<!ENTITY ****>
<!ENTITY ****>
等等,但没有别的东西,这个ENT文件是什么东东?它和DTD文件很相似啊,但为什么会用ENT呢?

小弟这里谢过了!!!
...全文
70 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
peppi 2002-08-03
  • 打赏
  • 举报
回复
多多益善,我要学习啊,我刚刚入门,需要各位的帮忙,总结一下,对学习有用啊,我对各个方法还没有一个广面的了解,只知道1和2,3,4,但不知道1234之间的关系区别,我要融会贯通,而我又没时间也不知道在哪去找那么多方法,我想呢,谁知道一种就帮我一下,我就多会一个方法,我可没有别的意思啊.呵呵~
peppi 2002-08-03
  • 打赏
  • 举报
回复
多多益善,我要学习啊,我刚刚入门,需要各位的帮忙,总结一下,对学习有用啊,我对各个方法还没有一个广面的了解,只知道1和2,3,4,但不知道1234之间的关系区别,我要融会贯通,而我又没时间也不知道在哪去找那么多方法,我想呢,谁知道一种就帮我一下,我就多会一个方法,我可没有别的意思啊.呵呵~
leonzhao 2002-08-03
  • 打赏
  • 举报
回复
很奇怪,你要那么多干什么?
peppi 2002-07-30
  • 打赏
  • 举报
回复
谢谢,谢谢,深表感谢,能不能在多些呢?我很贪啊~
yoyoxo 2002-07-29
  • 打赏
  • 举报
回复
你提到1,2方法都是用JAXP的api进行解析。如果用具体的解析器进行解析,代码要根据具体的解析器来定,比如:Xerces,JDOM,XML4J等等...
用工厂方法的原因在于使你的解析代码独立于具体的解析器。如果要换一个其他解析器,只需将它置于classpath,而不用改动任何代码。
binriyue 2002-07-29
  • 打赏
  • 举报
回复
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/
peppi 2002-07-28
  • 打赏
  • 举报
回复
各位再帮我总结总结吧,我学的少,见的少,只知道那两种,还望各位指点.集思广益啊!!
CrazyJavar 2002-07-25
  • 打赏
  • 举报
回复
我只知道有DOM和SAX两种
peppi 2002-07-25
  • 打赏
  • 举报
回复
你的这个是DOM和SAX的解析方法吗?我看SAX也可以用JAXP的,DOM也可以用JAXP的,是吗?
disk 2002-07-25
  • 打赏
  • 举报
回复
给你一个最简单的吧
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()

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧