`
小鑫的java
  • 浏览: 143252 次
  • 性别: Icon_minigender_1
  • 来自: 浙江
社区版块
存档分类
最新评论

XML_DOM解析

    博客分类:
  • XML
阅读更多
package ren;

import org.w3c.dom.*;
import java.io.*;
import javax.xml.parsers.*;

public class TestDOMParser {
	public static void main(String[] args) {
		TestDOMParser tp = new TestDOMParser();
		tp.parseXMLFile("c:\\student.xml");
	}

	public void parseXMLFile(String fileName) {
		try {
			DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
			DocumentBuilder db = dbf.newDocumentBuilder();

			//解析文件名传入
			Document doc = db.parse(fileName);
			//获得Documet,与xml建立对象匹配
			//Document  doc = parser.getDocument();

			//获得根节点StudentInfo
			Element elmtInfo = doc.getDocumentElement();

			//得到所有student节点,节点集合
			NodeList nlStudent = elmtInfo.getElementsByTagName("student");

			System.out.println("XML文件开始解析");

			//循环输出每一个学生成绩

			for (int i = 0; i < nlStudent.getLength(); i++) {

				//当前student元素
				Element elmtStudent = (Element) nlStudent.item(i);
				//Name/sex/lesson节点清单
				NodeList nlCurrent = elmtStudent.getElementsByTagName("name");
				System.out.println("姓名:"
						+ nlCurrent.item(0).getFirstChild().getNodeValue());

				nlCurrent = elmtStudent.getElementsByTagName("sex");
				System.out.println("性别:"
						+ nlCurrent.item(0).getFirstChild().getNodeValue());
				//取得Lesson节点,不是一个,需要循环
				nlCurrent = elmtStudent.getElementsByTagName("lesson");

				for (int j = 0; j < nlCurrent.getLength(); j++) {
					//Lesson这个元素的对应         	
					Element elmtLesson = (Element) nlCurrent.item(j);
					NodeList nlLesson = elmtLesson
							.getElementsByTagName("lessonName");
					System.out.print(nlLesson.item(0).getFirstChild()
							.getNodeValue());
					System.out.print(":");
					nlLesson = elmtLesson.getElementsByTagName("lessonScore");
					System.out.print(nlLesson.item(0).getFirstChild()
							.getNodeValue());
					System.out.println();
				}

				System.out.println("------------------------------------");
			}

			System.out.println("DOM_XML文件解析结束");
		} catch (IOException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

/**
 * <?xml version="1.0" encoding="GB2312"?>
<StudentInfo>
<student>
<name>达内</name>
<sex>男</sex>
<lesson>
<lessonName>Java初级</lessonName>
<lessonScore>85</lessonScore>
</lesson>
<lesson>
<lessonName>Oracle数据库</lessonName>
<lessonScore>95</lessonScore>
</lesson>
<lesson>
<lessonName>Java中级</lessonName>
<lessonScore>80</lessonScore>
</lesson>
<lesson>
<lessonName>Java高级</lessonName>
<lessonScore>100</lessonScore>
</lesson>
</student>

<breakLine/>

<student>
<name>花木兰</name>
<sex>女</sex>
<lesson>
<lessonName>射箭</lessonName>
<lessonScore>100</lessonScore>
</lesson>
<lesson>
<lessonName>柔道</lessonName>
<lessonScore>95</lessonScore>
</lesson>
<lesson>
<lessonName>国学</lessonName>
<lessonScore>80</lessonScore>
</lesson>
<lesson>
<lessonName>烹饪</lessonName>
<lessonScore>60</lessonScore>
</lesson>
<lesson>
<lessonName>游泳</lessonName>
<lessonScore>70</lessonScore>
</lesson>
</student>

<breakLine/>

</StudentInfo>
*/

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics