基于JDOM生成解析XML过程解析

网友投稿 294 2022-11-17


基于JDOM生成解析XML过程解析

JDOM是一个开源项目,它基于树型结构,利用纯java的技术对XML文档实现解析、生成、序列化以及多种操作。

JDOM 直接为JAVA编程服务。它利用更为强有力的JAVA语言的诸多特性(方法重载、集合概念以及映射),把SAX和DOM的功能有效地结合起来。

Jdom是用Java语言读、写、操作XML的新API函数。Jason Hunter 和 Brett McLaughlihttp://n公开发布了它的1.0版本。在直觉、简单和高效的前提下,这些API函数被最大限度的优化。在接下来的篇幅里将介绍怎么用Jdom去读写一个已经存在的XML文档。

到官方网站下载JDOM包http://jdom.org/

注意的是,版本1和版本2的类路径已经变更,如果你是更新使用版本2,则需要重新编译你的代码

package com.test;

import java.io.FileOutputStream;

import java.util.List;

import org.jdom2.Document;

import org.jdom2.Element;

import org.jdom2.input.SAXBuilder;

import org.jdom2.output.Format;

import org.jdom2.output.XMLOutputter;

/**

* @说明 JDom生成解析XML

* @author cuisuqiang

* @version 1.0

* @since

*/

@SuppressWarnings("unchecked")

public class JDomDemo {

public static void main(String[] args) {

String file = "C:\\p.xml"; // 文件存放位置

JDomDemo dj = new JDomDemo();

dj.createXml(file);

dj.parserXml(file);

}

/**

* 生成XML

* @param filePath 文件路径

*/

public void createXml(String fileName) {

Element root = new Element("persons");

Document document = new Document(root);

Element person = new Element("person");

root.addContent(person);

Element name = new Element("name");

name.setText("java小强");

person.addContent(name);

Element sex = new Element("sex");

sex.setText("man");

person.addContent(sex);

Element age = new Element("age");

age.setText("23");

peHrzsChrson.addContent(age);

XMLOutputter XMLOut = new XMLOutputter();

try {

Format f = Format.getPrettyFormat();

f.setEncoding("UTF-8");//default=UTF-8

XMLOut.setFormat(f);

XMLOut.output(document, new FileOutputStream(fileName));

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* 解析XML

* @param filePath 文件路径

*/

public void parserXml(String fileName) {

try {

SAXBuilder builder = new SAXBuilder();

Document document = builder.build(fileName);

Element root = document.getRootElement();

List persons = root.getChildren("person");

for (int i = 0; i < persons.size(); i++) {

Element person = (Element) persons.get(i);

List pros = person.getChildren();

for (int j = 0; j < pros.size(); j++) {

Element element = (Element) pros.get(j);

HrzsChSystem.out.println(element.getName() + ":" + element.getValue());

}

}

} catch (Exception e) {

e.printStackTrace();

}

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java如何基于反射获取对象属性信息
下一篇:Java:String.split()特殊字符处理操作
相关文章

 发表评论

暂时没有评论,来抢沙发吧~