1JDOM解析
2流操作
3DTD约束文档
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import org.jdom.DocType;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
public class XMLAndReflect {
/**
* Document 类 addContent方法
* Element类 setAttribute方法 setText方法 addContent方法
* XMLOutputter类 output方法
* FileOutputStream类
* Format类 getPrettyFormat方法setEncoding方法 setIndent方法
*/
public static void main(String[] args) throws Exception, NoSuchMethodException {
//Document类
Class documentclass=Class.forName("org.jdom.Document");
//Method documentMethod=documentclass.getMethod("addContent", new Class[]{Element.class});//方法对象
Constructor documentconstrutor=documentclass.getConstructor(new Class[]{});
Object Objdocument=documentconstrutor.newInstance(new Object[]{});
Document document=(Document)Objdocument;//
//Element类
Class elementclass = Class.forName("org.jdom.Element");
/*Method setAttributemothod=elementclass.getMethod("setAttribute", new Class[]{String.class,String.class});//属性方法对象
Method setTextmothod=elementclass.getMethod("setText", new Class[]{String.class});//元素的赋值方法对象
Method mothod=elementclass.getMethod("addContent", new Class[]{Element.class});//添加元素方法对象
*/
Constructor elementConstructor=elementclass.getConstructor(new Class[]{String.class});
//Element类 -----声明好标签
Object RootelementObj=elementConstructor.newInstance("图书管理系统");//根Object对象
Element Root=(Element)RootelementObj;
Object Child1elementObj=elementConstructor.newInstance("图书");//父元素Object对象
Element Child=(Element)Child1elementObj;
Object ChildNode1elementObj=elementConstructor.newInstance("书名");//子元素Object对象
Element ChildNode1=(Element)ChildNode1elementObj;
//Element类 -----标签赋值以及设置属性 Child.setAttribute("id","A001");、
Object Child1elementObj1=elementConstructor.newInstance("图书");//父元素Object对象
Element Child1=(Element)Child1elementObj1;
Object ChildNode1elementObj1=elementConstructor.newInstance("书名");//子元素Object对象
Element ChildNode11=(Element)ChildNode1elementObj1;
ChildNode1.setText("地狱来的天堂来使");
Child.setAttribute("id", "A001");
Child.addContent(ChildNode1);
ChildNode11.setText("有爱的天使");
Child1.setAttribute("id","A002");
Child1.addContent(ChildNode11);
Root.addContent(Child);
Root.addContent(Child1);
/**
* 添加一个约束的语句
*/
DocType doc = new DocType("per"); // DOCTYPE per SYSTEM "per.dtd"
doc.setSystemID("per.dtd");
document.setDocType(doc);
document.addContent(Root);
//XML文档
Class fie=Class.forName("java.io.FileOutputStream");
Constructor file=fie.getConstructor(new Class[]{String.class});
Object fileObj=file.newInstance("Book.xml");
FileOutputStream xmlfile=(FileOutputStream)fileObj;
//XMLOutputter反射
Class xml=Class.forName("org.jdom.output.XMLOutputter");
Constructor xmlConstructor=xml.getConstructor(new Class[]{Format.class});
Object ObjXml=xmlConstructor.newInstance(Format.getPrettyFormat().setEncoding("utf-8").setIndent(" "));
XMLOutputter out=(XMLOutputter)ObjXml;
out.output(document, xmlfile);
System.out.println("生成完毕。");
}
}