JDOM解析

编程入门 行业动态 更新时间:2024-10-09 15:25:30

<a href=https://www.elefans.com/category/jswz/34/1579448.html style=JDOM解析"/>

JDOM解析

<?xml version="1.0" encoding="UTF-8"?>
<students> <student name="长泽雅美" height="170cm" weight="50kg"> <grade id="001">二年级</grade>  <number score="80">1</number> </student>  <student name="李四" height="170cm" weight="50kg"> <grade id="002">二年级</grade>  <number score="88">2</number> </student>  <student name="堀北真希" height="170cm" weight="50kg"> <grade id="005"/>  <number score="99"/> </student>  
</students>
package com.betasoft.util;import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;import org.jdom2.Attribute;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;import com.betasoft.entity.Student;public class JDOMParse {private static List<Student> list = new ArrayList<>();public static void main(String[] args) {//进行对student.xml文件的JDOM解析//准备工作//1.创建一个SAXBuilder的对象SAXBuilder saxBuilder = new SAXBuilder();//创建一个输入流,将XML文件加载到输入流中InputStream in;try {in = new FileInputStream("src/file/student.xml");//通过SAXBuilder的build方法,将输入流加载到saxBuilder中InputStreamReader isr = new InputStreamReader(in,"UTF-8");Document document = saxBuilder.build(isr);//通过Document对象获取获取XML文件的根节点Element rootElement = document.getRootElement();//获取根节点下的子节点的List集合List<Element> studentList = rootElement.getChildren();//继续进行解析for(Element student : studentList){Student stu = new Student();System.out.println("开始解析第" + (studentList.indexOf(student)+1) + "书");//解析student属性List<Attribute> attrList = student.getAttributes();//知道节点名称时,获取节点值//student.getAttributeValue("");//遍历attrList(针对不清楚student节点下属性的名字及数量)for(Attribute attr : attrList){//获取属性名String name = attr.getName();//获取属性值String value = attr.getValue();System.out.println("属性名:"+name+"属性值"+value);if(name.equals("name")){stu.setName(value);}else if(name.equals("height")){stu.setHeight(value);}else if(name.equals("weight")){stu.setWeight(value);}}//对student节点的子节点的节点名以及节点值的遍历List<Element> bookChilds = student.getChildren();for(Element child : bookChilds){System.out.println("节点名" + child.getName() + "------节点值" + child.getValue());if(child.getName().equals("grade")){stu.setGrade(child.getValue());}else if(child.getName().equals("number")){stu.setNumber(child.getValue());}}System.out.println("结束解析第" + (studentList.indexOf(student)+1) + "书");list.add(stu);stu = null;System.out.println(list.size());System.out.println(list.get(0).getName());}} catch (FileNotFoundException e) {e.printStackTrace();} catch (JDOMException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}
}


更多推荐

JDOM解析

本文发布于:2024-02-07 09:25:14,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1755733.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:JDOM

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!