java xml解析 jdom_Java语言中XML的JDom解析方式

本文主要向大家介绍了Java语言中XML的JDom解析方式,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

三、JDOM解析

特征:

1、仅使用具体类,而不使用接口。

2、API大量使用了Collections类。

xml文件如下:

51904ea61658fb34f93cc1aa6edd5421.png

JDOM解析如下:

public class JDOMTest {

private static ArrayListbooksList = new ArrayList();

/**

* @param args

*/

public static void main(String[] args) {

// 进行对books.xml文件的JDOM解析

// 准备工作

// 1.创建一个SAXBuilder的对象

SAXBuilder saxBuilder = new SAXBuilder();

InputStream in;

try {

// 2.创建一个输入流,将xml文件加载到输入流中

in = new FileInputStream("src/res/books.xml");

InputStreamReader isr = new InputStreamReader(in, "UTF-8");

// 3.通过saxBuilder的build方法,将输入流加载到saxBuilder中

Document document = saxBuilder.build(isr);

// 4.通过document对象获取xml文件的根节点

Element rootElement = document.getRootElement();

// 5.获取根节点下的子节点的List集合

ListbookList = rootElement.getChildren();

// 继续进行解析

for (Element book : bookList) {

Book bookEntity = new Book();

System.out.println("======开始解析第" + (bookList.indexOf(book) + 1)

+ "书======");

// 解析book的属性集合

ListattrList = book.getAttributes();

// //知道节点下属性名称时,获取节点值

// book.getAttributeValue("id");

// 遍历attrList(针对不清楚book节点下属性的名字及数量)

for (Attribute attr : attrList) {

// 获取属性名

String attrName = attr.getName();

// 获取属性值

String attrValue = attr.getValue();

System.out.println("属性名:" + attrName + "----属性值:"

+ attrValue);

if (attrName.equals("id")) {

bookEntity.setId(attrValue);

}

}

// 对book节点的子节点的节点名以及节点值的遍历

ListbookChilds = book.getChildren();

for (Element child : bookChilds) {

System.out.println("节点名:" + child.getName() + "----节点值:"

+ child.getValue());

if (child.getName().equals("name")) {

bookEntity.setName(child.getValue());

}

else if (child.getName().equals("author")) {

bookEntity.setAuthor(child.getValue());

}

else if (child.getName().equals("year")) {

bookEntity.setYear(child.getValue());

}

else if (child.getName().equals("price")) {

bookEntity.setPrice(child.getValue());

}

else if (child.getName().equals("language")) {

bookEntity.setLanguage(child.getValue());

}

}

System.out.println("======结束解析第" + (bookList.indexOf(book) + 1)

+ "书======");

booksList.add(bookEntity);

bookEntity = null;

System.out.println(booksList.size());

System.out.println(booksList.get(0).getId());

System.out.println(booksList.get(0).getName());

}

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (JDOMException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值