博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java:XML篇,使用JDOM读取并解析XML
阅读量:6965 次
发布时间:2019-06-27

本文共 3159 字,大约阅读时间需要 10 分钟。

1. 描述

JDOM目标:我们希望提供一个解决方案,在Java中使用XML就像Java本身那么简单。它形如Java,它使用Java集合,它提供完全自然的API接口给Java开发人员, 它降低了使用XML的门槛。相对DOM与SAX,它不是一个抽象层或增强这些API。相反,它提供了一个强大的,轻量的阅读和写作的复杂性和内存消耗的方案。

需要下载最新包jdom-2.0.4.jar();下载包中没有API文档,需要参考

2. 示范代码

package com.clzhang.sample.xml;import java.io.*;import java.util.*;import org.jdom2.Document;import org.jdom2.Element;import org.jdom2.input.SAXBuilder;import org.jdom2.output.Format;import org.jdom2.output.XMLOutputter;/** * 参考 http://www.jdom.org/,需要下载最新包jdom-2.0.4.jar * 下载包中没有API文档,需要参考http://www.jdom.org/docs/apidocs/index.html * 目标:我们希望提供一个解决方案,在Java中使用XML就像Java本身那么简单。 * 它形如Java,它使用Java集合,它提供完全自然的API接口给Java开发人员, 它降低了使用XML的门槛。 * 相对DOM与SAX,它不是一个抽象层或增强这些API。相反,它提供了一个强大的,轻量的阅读和写作的复杂性和内存消耗的方案。 */public class JDOMTest {    // 读取文件测试(其输入是writeXMLFile的输出)    public void parseByJDOM(String file) throws Exception {        SAXBuilder sb = new SAXBuilder();        Document doc = sb.build(new File(file));        Element root = doc.getRootElement();        List
elements = root.getChildren(); for (Element element : elements) { String id = element.getAttribute("id").getValue(); System.out.println(element.getName() + "\tid=" + id); List
children = element.getChildren(); for (Element child : children) { String name = child.getAttribute("name").getValue(); String value = child.getText(); System.out.println("\t" + child.getName() + "\t" + name + "=" + value); } } } // 写入文件测试 public void writeXMLFile(String filename) throws Exception { // 文档 Document doc = new Document(); // 根节点 Element root = new Element("add"); doc.setRootElement(root); // 子节点一 Element element = new Element("doc"); element.setAttribute("id", "1"); Element name = new Element("field"); name.setAttribute("name", "title"); name.setText("北京欢迎您"); Element content = new Element("field"); content.setAttribute("name", "content"); content.setText("北京真的欢迎您"); element.addContent(name); element.addContent(content); root.addContent(element); // 子节点二 element = new Element("doc").setAttribute("id", "2"); name = new Element("field").setAttribute("name", "title"); name.setText("上海也欢迎您"); content = new Element("field").setAttribute("name", "content"); content.setText("上海真的也欢迎您"); element.addContent(name); element.addContent(content); root.addContent(element); // 输出到文件,输出流及格式都设置为UTF-8 FileOutputStream fos = new FileOutputStream(filename); OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8"); Format format = Format.getPrettyFormat(); format.setEncoding("UTF-8"); XMLOutputter output = new XMLOutputter(); output.setFormat(format); output.output(doc, osw); osw.close(); fos.close(); } public static void main(String[] args) throws Exception { JDOMTest ins = new JDOMTest(); ins.writeXMLFile("bbs.xml"); ins.parseByJDOM("bbs.xml"); }}

 

转载地址:http://mcfsl.baihongyu.com/

你可能感兴趣的文章
if...else if...else和switch语句的注意点
查看>>
C++ 单向链表反转
查看>>
好书记录
查看>>
Flask | 浅读文档,快速出发
查看>>
SaaS客服的难点和坑点全解析
查看>>
Yenista光学发布新型无源器件测试平台CTP10
查看>>
李志飞:想在中国复制 Echo 的成功,肯定都不靠谱
查看>>
浅析Facebook文字理解引擎DeepText
查看>>
从敏捷工程实践中获益的五种途径
查看>>
xml 序列化操作
查看>>
中国国产64核ARM芯片细节公布
查看>>
飞塔安全实验室:2016年物联网将成为新的战场
查看>>
Gitlab 官方对整个数据删除事件的详细说明
查看>>
JQuery设置checkbox的值,取checkbox的值,设置radio的值,取radio的值,设置下拉选select的值,取select的值...
查看>>
接班 RT 系统?Windows 10 云服务版首次亮相
查看>>
DataGridView数据控件演示
查看>>
MySQL 5.6.26 Release Note解读
查看>>
在MAC平台下使用Eclipse出现了中文乱码
查看>>
redis字典结构
查看>>
理解haslayout
查看>>