解析XML问题 可以是SAX和DOM4j配合,SAX用于生成XML(据称是DOM4j是千倍),DOM4j解析模板文件,不知道楼主需求如何? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 DOM,SAX两种,其中SAX是事件驱动的,DOM是直接将XML转换成TREE型。对应SAXBuilder 和 DOMBuilder。SAXBuilder用sax解析器从文件中构造文档。SAXBuilder侦听sax事件并从内存中建立一个相应的文档。这种方式非常快。DOMBuilder是另一种可选的方式,它从一个存在的org.w3c.dom.Document对象中建立JDOM文档。它允许jdom轻松的和构建DOM树的工具实现接口。给个saxbuiler的例子:你可以自己选择解析器import java.io.*;import org.jdom.*;import org.jdom.input.*;import org.jdom.output.*;public class PrettyPrinter { public static void main(String[] args) { // Assume filename argument String filename = args[0]; try { /* 或者org.jdom.input.SAXBuilder builder =new SAXBuilderorg.apache.xerces.parsers.SAXParser",false);可指定解析器 SAXBuilder builder = new SAXBuilder();//使用缺省 // Create the document Document doc = builder.build(new File(filename)); // Output the document, use standard formatter XMLOutputter fmt = new XMLOutputter(); fmt.output(doc, System.out); } catch (Exception e) { e.printStackTrace(); } }} java里面标准接口 都有了,选几个是实现的 jar包就可以了。比如 Xerces就是一个。 各种开源的解析器多了,java自带的也有,都差不多. 比如在DOM和SAX间做选择我的标准是:SAX对内存消耗比较小,采取触发事件的方法,也就是你读过了这个标记后就不可能再回头处理这个了,另外SAX不能对xml文件进行处理而DOM呢? 内存消耗较大,因为读入的内容全保存在内存中,但是你可以灵活的进行修改,随便什么节点都可以比如你拿到一个20M的文件,你只需要提取一部分内存,那么肯定是使用SAX而不是DOM了!~ 关于nio包的selector的select方法~~求问 iabtis做ORM容器处理TB数据表解决方案 救急 hibernate update时变成insert 为什么返回jsp页面到浏览器端不带有java代码 关于中文乱码的问题 dom4j的API帮助文档在哪里可以下载? 本人新人,求解答关于excel导出问题 求一个完整的纯hibernate+jsp的分页显示数据的代码 请问一下大连东软的商用事业部和社报事业部都怎么样 ssh框架是如何处理的事务死锁 请教一个EJB的问题 高分请教几个关于java的问题
给个saxbuiler的例子:你可以自己选择解析器
import java.io.*;
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.output.*;
public class PrettyPrinter {
public static void main(String[] args) {
// Assume filename argument
String filename = args[0];
try {
/* 或者org.jdom.input.SAXBuilder builder =new
SAXBuilderorg.apache.xerces.parsers.SAXParser",false);可指定解析器
SAXBuilder builder = new SAXBuilder();//使用缺省
// Create the document
Document doc = builder.build(new File(filename));
// Output the document, use standard formatter
XMLOutputter fmt = new XMLOutputter();
fmt.output(doc, System.out);
} catch (Exception e) {
e.printStackTrace();
}
}
}
比如 Xerces就是一个。
我的标准是:
SAX对内存消耗比较小,采取触发事件的方法,也就是你读过了这个标记后就不可能再回头处理这个了,另外SAX不能对xml文件进行处理而DOM呢?
内存消耗较大,因为读入的内容全保存在内存中,但是你可以灵活的进行修改,随便什么节点都可以比如你拿到一个20M的文件,你只需要提取一部分内存,那么肯定是使用SAX而不是DOM了!~