java 读取xml的方法

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!"); 
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值