Jdom读写XML

1.maven引入jdom2

		<dependency>
			<groupId>org.jdom</groupId>
			<artifactId>jdom2</artifactId>
			<version>2.0.6</version>
		</dependency>

 2.实例

import java.io.FileOutputStream;
import java.util.List;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.input.SAXBuilder;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;

public class MemInfoParserJDOM {

	/**
	 * log4j2日志
	 */
	protected static Logger log = LogManager.getLogger();

	public static void main(String[] args) {
		String path = "/data/workspace/tec-demo/src/main/java/cn/tinyf/demo/xml/jdom/jdom-data.xml";
		MemInfoParserJDOM dj = new MemInfoParserJDOM();
		dj.createXml(path);
		dj.parserXml(path);
	}

	/**
	 * 生成XML
	 * 
	 * @param filePath
	 *            文件路径
	 */
	public void createXml(String filePath) {
		// 创建根节点
		Element root = new Element("MemInfo");
		root.setAttribute("class", "0501");
		// 创建第一个子节点
		root.addContent(createElementPerson(1, "James", 32));
		// 创建第二个子节点
		root.addContent(createElementPerson(2, "Kim", 38));
		// 创建第二个子节点
		root.addContent(createElementPerson(3, "Joe", 24));
		// 根节点添加到文档Document中
		Document document = new Document(root);
		try {
			// 输出到文件
			XMLOutputter XMLOut = new XMLOutputter();
			Format f = Format.getPrettyFormat();
			f.setEncoding("UTF-8");// default=UTF-8
			XMLOut.setFormat(f);
			XMLOut.output(document, new FileOutputStream(filePath));
		} catch (Exception e) {
			log.error(e);
		}
	}

	/**
	 * 创建学生子节点
	 * 
	 * @param no
	 *            学号
	 * @param name
	 *            姓名
	 * @param age
	 *            年龄
	 * @return
	 */
	private Element createElementPerson(int no, String name, int age) {
		Element person = new Element("person");
		person.setAttribute("no", no + "");
		// 姓名子节点
		Element nameE = new Element("name");
		nameE.addContent(name);
		person.addContent(nameE);
		// 年龄子节点
		Element ageE = new Element("age");
		ageE.addContent(age + "");
		person.addContent(ageE);
		// 返回节点
		return person;
	}

	/**
	 * 解析XML
	 * 
	 * @param filePath
	 *            文件路径
	 */
	public void parserXml(String fileName) {
		try {
			// 构建SAX解析器
			SAXBuilder builder = new SAXBuilder();
			// 解析获得文档对象
			Document document = builder.build(fileName);
			Element root = document.getRootElement();
			//遍历子节点
			List<Element> persons = root.getChildren("person");
			for (int i = 0; i < persons.size(); i++) {
				Element person = persons.get(i);
				log.info("学号:{},姓名:{},年龄:{}", person.getAttribute("no").getValue(), person.getChildText("name"),
						person.getChildText("age"));
			}
		} catch (Exception e) {
			log.error(e);
		}
	}
}

猜你喜欢

转载自marionette.iteye.com/blog/2389930