SSH框架--01dom解析xml

实体类

package com.joker.vo;

public class Student {
	private String stuno;
	private int age;
	private String name;
	private String address;
	public String getStuno() {
		return stuno;
	}
	public void setStuno(String stuno) {
		this.stuno = stuno;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	
	
}

xml文件

<?xml version="1.0" encoding="UTF-8"  ?>
<jingying>
	<bzr> 张老师 </bzr>
	<students>
		<student stuno="001">
			<name>张三</name>
			<age>20</age>
			<address>山东济南</address>
		</student>
		<student stuno="002">
			<name>李四</name>
			<age>21</age>
			<address>山西大同</address>
		</student>
		<student stuno="003">
			<name>王五</name>
			<age>22</age>
			<address>山西晋中</address>
		</student>
		<student stuno="004">
			<name>赵六</name>
			<age>66</age>
			<address>山西晋中</address>
		</student>
		
	</students>
</jingying>

dom解析

package com.joker.dom;

import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

import com.joker.vo.Student;

/*
 * dom解析的程序
 * 我把一个个的学生信息提取出来封装成一个个学生对象
 * 把学生封装到一个集合中去
 */
public class MyDomParser {
	//元素内容:getTextContent()
		//属性节点内容:getNodeValue()
		public static void main(String[] args) 
			throws Exception{
			List<Student> stulist=new ArrayList<Student>();//创建了一个集合,用来盛放student对象
			DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();//dom解析器工厂
			DocumentBuilder db=factory.newDocumentBuilder();//dom解析器
			InputStream in=MyDomParser.class.getClassLoader().getResourceAsStream("students.xml");//获取要解析的文件的输入流
			Document document=db.parse(in);//把输入流解析成一个文档对象  至此为止 我们有了document对象了
			//所有 的操作 全部围绕document完成
			//document--->students.xml
			//Dom解析中  Node 节点  万事万物皆节点
			NodeList list=document.getElementsByTagName("student");
			int size=list.getLength();
			for (int i = 0; i < size; i++) {
				Student stu=new Student();
				Node student=list.item(i);
				//属性集合
				NamedNodeMap nnm=student.getAttributes();//dom中所有的属性都是在属性集合中
				Node stunonode=nnm.getNamedItem("stuno");//通过属性名获取属性节点
				String stuno=stunonode.getNodeValue();
				stu.setStuno(stuno);
				
				NodeList list2=student.getChildNodes();
				int list2size=list2.getLength();
				System.out.println(list2size);
				for (int j = 0; j < list2size; j++) {
					Node nn=list2.item(j);
					String nodename=nn.getNodeName();
					//String nodevalue=nn.getNodeValue();
					String nodevalue=nn.getTextContent();
					if (nodename.equals("name")) {
						stu.setName(nodevalue);
						System.out.println("name:"+nodevalue);
					}else if(nodename.equals("age")){
						stu.setAge(new Integer(nodevalue));
						System.out.println("age:"+nodevalue);
					}else if(nodename.equals("address")){
						stu.setAddress(nodevalue);
						System.out.println("address:"+nodevalue);
					}
				}
				//应该把stu加入到stulist
				stulist.add(stu);
			}
			System.out.println("所有的数据为:");
			for (Student stu:stulist) {//增强for循环循环遍历集合中的数据
				System.out.println(stu.getStuno()+" "+stu.getName()+" "+stu.getAge()+" "+stu.getAddress());
			}
		}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值