怎么将DOM解析转化为XML解析????!!!! 因为公司的原因,原来的产品解析XML是用DOM解析的,但是考虑到DOM解析太占内存,所以就想将DOM解析全部转为SAX解析。请问哪位大哥 做过类似的东西, 因为涉及的文件较多,有没有比较简单点的方法??? 谢了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 private Document readXML(String xmlFilePath) {//读取一个XML文档 //DOMBuilder input=new DOMBuilder(); //用此方式则会有根节点声明属性无法通过的问题(并且比较占内存) SAXBuilder input=new SAXBuilder(); //sax解析 Document docment=null; File file=new File(xmlFilePath); //xmlFilePath是xml文件路径 try{ docment=input.build(file); }catch (JDOMException e1) { e1.printStackTrace(); } return docment; } (1)使用JDOM首先要指定使用什么解析器。如: SAXBuilder builder=new SAXBuilder(false); 这表示使用的是默认的解析器(2)得到Document,我们以后要进行的所有操作都是对这个Document操作的: Document doc=builder.build(xmlpath);(3)得到根元素: Element books=doc.getRootElement();在JDOM中所有的节点(DOM中的概念)都是一个org.jdom.Element类,当然他的子节点也是一个org.jdom.Element类。(4)得到元素(节点)的集合: List booklist=books.getChildren("book");这表示得到“books”元素的所在名称为“book”的元素,并把这些元素都放到一个List集合中 楼主是说怎么用sax解析吧,事件驱动,不难! 推荐你看看孙鑫写的那本《xml,xml schema xslt2.0和XQuery开发详解》这本书,上面有详细的介绍,由浅入深,非常不错的。学过之后你会对xml方面的编程有很大的收获。 4楼和5楼说的是jdom解析吧,我想用sax解析, 而且我想在sax里面像DOM一样可以通过节点名就可以得到相应的节点值,请问可以实现么??难道要在sax解析的时候 都存到一个hashmap里面,然后再取?? SAX就是事件驱动,要是弄节点,那就叫DOM。 你用SAX解析存入一个hashmap里然后再取,跟直接用DOM有什么不同么?不都是要把所有的数据都放入内存用SAX的好处就是因为SAX是事件驱动,读过的数据要抛弃掉 在Java中什么叫“接口”? 大家帮忙我这个菜鸟,这个程序该怎样优化代码。 Java虚拟机 求教!关于集合类的疑问2则 java socket客户端与服务器联系的问题 2个面试题 我要去面试一家通信公司, 请问应该重点准备哪方面的东西? 请高人救急!!!!!!!! 初学Java, 从书上抄的代码,但编译器告诉我它不认的这个数据类型,郁闷ing Tomcat 4 + IIS5 + WIN2000 如何配置? javadoc的问题,怎样使生成的一个html文件包括所有的类? java mssql 问题 jsp实现图片上传和下载问题
private Document readXML(String xmlFilePath)
{//读取一个XML文档
//DOMBuilder input=new DOMBuilder(); //用此方式则会有根节点声明属性无法通过的问题(并且比较占内存)
SAXBuilder input=new SAXBuilder(); //sax解析
Document docment=null;
File file=new File(xmlFilePath); //xmlFilePath是xml文件路径
try{
docment=input.build(file);
}catch (JDOMException e1) {
e1.printStackTrace();
}
return docment;
}
SAXBuilder builder=new SAXBuilder(false); 这表示使用的是默认的解析器
(2)得到Document,我们以后要进行的所有操作都是对这个Document操作的:
Document doc=builder.build(xmlpath);
(3)得到根元素:
Element books=doc.getRootElement();
在JDOM中所有的节点(DOM中的概念)都是一个org.jdom.Element类,当然他的子节点也是一个org.jdom.Element类。
(4)得到元素(节点)的集合:
List booklist=books.getChildren("book");
这表示得到“books”元素的所在名称为“book”的元素,并把这些元素都放到一个List集合中
由浅入深,非常不错的。学过之后你会对xml方面的编程有很大的收获。
你用SAX解析存入一个hashmap里然后再取,跟直接用DOM有什么不同么?不都是要把所有的数据都放入内存用SAX的好处就是因为SAX是事件驱动,读过的数据要抛弃掉