1、建立要读取的xml文档:
<processor> <log-file>logfile</log-file> <tasks> <task name="n1" class="c1" /> <task name="n2" class="c2" /> <task name="n3" class="c3" /> <task name="n4" class="c4" /> </tasks> </processor>
2、建一个方法来读取xml文档:
private void readXMLTest(String inFile) throws Exception{
// 为解析XML作准备
// 创建DocumentBuilderFactory实例,指定DocumentBuilder
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = null;
try {
db = dbf.newDocumentBuilder();
} catch (ParserConfigurationException pce) {
System.err.println(pce);
// 出异常时输出异常信息,然后退出,下同
System.exit(1);
}
Document doc = null;
try {
doc = db.parse(inFile);
} catch (DOMException dom) {
System.err.println(dom.getMessage());
System.exit(1);
} catch (IOException ioe) {
System.err.println(ioe);
System.exit(1);
}
// 下面是解析XML的全过程,
// 比较简单,先取根元素"processor"
Element root = doc.getDocumentElement();
NodeList log = root.getElementsByTagName("log-file");
Element e = (Element) log.item(0);
Text t = (Text) e.getFirstChild();
System.out.println("log-file:" + t.getNodeValue());
// 取tasks元素列表
NodeList tasks = root.getElementsByTagName("tasks");
Element task = (Element) tasks.item(0);
NodeList taskList = task.getElementsByTagName("task");
for (int i = 0; i < taskList.getLength(); i++) {
// 取出每个task元素
Element taskEle = (Element) taskList.item(i);
String nameValue = taskEle.getAttribute("name");
System.out.println("name: " + nameValue);
String classValue = taskEle.getAttribute("class");
System.out.println("class: " + classValue);
}
}
3、建立一个main函数讲xml文档里的内容输出到控制台
public static void main(String[] args) throws Exception {
ProcessXml processXml = new ProcessXml();
System.out.println("开始读test.xml文件");
//processXml.readXMLFile2("LogMessageProcessor.xml");
// processXml.readXMLFile("input.xml");
processXml.readXMLTest("test.xml");
System.out.print("success!");
}