JDOM的处理方式有些类似于DOM,但它主要是用SAX实现的,不必担心处理速度和内存的问题。另外,JDOM中几乎没有接口,类全部是实实在在的类,没有工厂类的。
数据输入要用到XML文档要通过org.jdom.input包,反过来需要org.jdom.output。
API如下:
- SAXBuilder.build(FileInputStream("*.xml");——获取xml文件,返回Document实例(读xml文件)
- Element.getChildren();——获取该节点的所有字节点,返回List
- Element.getChild("child节点名");——获取字节点实例
- Element.getAttribute("属性名");——获取该节点属性的value值(平面式节点)
- Element.getText();——获取该节点的节点文本
- Document(new Element("根节点名"));——新建xml文件文档
- Document.getRootElement();——获取根节点
- Element.addContent(Element);——添加子节点
- Element.setAttribute("属性名","属性值");——添加节点属性
- Element.setText("文本值");——添加该节点的文本值
- XMLOutputter(Format.getPrettyFormat())
- XMLOutputter.output(Document,FileOutPutStream)
这两句用来输出xml文件,其中Document为填好内容的xml文档对象,FileoutPutStream为文本输出流。唯一的不足是它不是严格校验的xml解析器,即你在getAttribute某个属性的时候,jdom并不会根据该xml文件的DTD去校验该属性是否合法,也就是说你的xml文件中完全可以不带DTD=""的索引,因为jdom不会去加载它。