文档章节

JDOM生成XML文档(一)

AK灬
 AK灬
发布于 2016/05/06 17:57
字数 624
阅读 50
收藏 1
package com.ninemax.common.utils;

import java.io.FileOutputStream;

import org.jdom.DocType;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;

/**
 * JAVA生成XML
 * 
 * @author Darker
 *
 */
public class JavaTransXml {

	public static void JavaTransXml2() throws Exception {
		//生成XML文档对象
		Document doc= new Document();
		//生成XM文档根节点
		Element root= new Element("ArticleSet");
		//文档头声明
		doc.addContent(new DocType("ArticleSet","WPRIM_2.dtd"));
		//根节点添加到文档中
		doc.addContent(root);
		//生成10个子节点
		for(int i=0;i<10;i++){
			Element article= new Element("Article");
			Element journal= new Element("Journal");
			journal.addContent(new Element("Country").setText("China"));
			journal.addContent(new Element("PublisherName").setText("IMICAMS"));
			journal.addContent(new Element("JournalTitle").setText("first testing JournalTitle"));
			journal.addContent(new Element("Issn").setText("0000-0001"));
			journal.addContent(new Element("Volume").setText("2"));
			journal.addContent(new Element("Issue").setText("2"));
			Element pubDate=new Element("PubDate");
			pubDate.addContent(new Element("Year").setText("2009"));
			pubDate.addContent(new Element("Month").setText("05"));
			pubDate.addContent(new Element("Day").setText("18"));
			journal.addContent(pubDate);
			article.addContent(journal);
			article.addContent(new Element("ArticleTitle").setText("first testing ArticleTitle"));
			article.addContent(new Element("VernacularTitle").setText("first testing VernacularTitle"));
			article.addContent(new Element("FirstPage").setText("1"));
			article.addContent(new Element("LastPage").setText("10"));
			article.addContent(new Element("Language").setText("Chinese"));
			Element authorList=new Element("AuthorList");
			for(int j=0;j<2;j++){
				
				Element author=new Element("Author");
				author.addContent(new Element("FirstName").setText("FirstName1"));
				author.addContent(new Element("MiddleName1").setText("MiddleName1"));
				author.addContent(new Element("LastName").setText("LastName1"));
				author.addContent(new Element("Affiliation").setText("Affiliation1"));
				authorList.addContent(author);
			}
			Element author=new Element("Author");
			author.addContent(new Element("CollectiveName").setText("Plastic Surgery Educational Foundation DATA Committee"));
			authorList.addContent(author);
			article.addContent(new Element("PublicationType").setText("Journal Article"));
			Element articleIdList=new Element("ArticleIdList");
			articleIdList.addContent(new Element("ArticleId").setText("10.1055/s-2007-985171").setAttribute("IdType","doi"));
			articleIdList.addContent(new Element("ArticleId").setText("http://www.imicams.ac.cn").setAttribute("IdType","url"));
			article.addContent(articleIdList);
			article.addContent(new Element("Abstract").setText("...."));
			Element keywordsList=new Element("KeywordsList");
			
			for(int k=0;k<2;k++){
				
				keywordsList.addContent(new Element("Keywords").setText("Keywords1"));
				
			}
			article.addContent(keywordsList);
			
			Element meSHList=new Element("MeSHList");
			
			for(int h=0;h<2;h++){
				
				meSHList.addContent(new Element("MeSH").setText("MeSH1"));
				
			}
			article.addContent(meSHList);
			//给父节点ArticleSet添加子节点Article
			root.addContent(article);
		}
		XMLOutputter XMLOut = new XMLOutputter(Format.getPrettyFormat());  
        // 输出 XMLOutput.xml 文件到项目根目录;     
        XMLOut.output(doc, new FileOutputStream("E://XMLOutput.xml")); 
        // 参考网站:http://budani.iteye.com/blog/1630493
	}
	
	public static Format FormatXML(){  
        //格式化生成的xml文件,如果不进行格式化的话,生成的xml文件将会是很长的一行...
		//默认编码为:getRawFormat()
        Format format = Format.getPrettyFormat();
        format.setEncoding("utf-8");  
        format.setIndent(""); 
        return format;  
    }

	public static void main(String[] args) throws Exception {
		
		JavaTransXml.JavaTransXml2();
		
		System.out.println("生成 mxl 文件成功,请查看项目根目录XMLOutput.xml文件!");
	}


}

生成XML文档内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ArticleSet SYSTEM "WPRIM_2.dtd">

<ArticleSet>
  <Article>
    <Journal>
      <Country>China</Country>
      <PublisherName>IMICAMS</PublisherName>
      <JournalTitle>first testing JournalTitle</JournalTitle>
      <Issn>0000-0001</Issn>
      <Volume>2</Volume>
      <Issue>2</Issue>
      <PubDate>
        <Year>2009</Year>
        <Month>05</Month>
        <Day>18</Day>
      </PubDate>
    </Journal>
    <ArticleTitle>first testing ArticleTitle</ArticleTitle>
    <VernacularTitle>first testing VernacularTitle</VernacularTitle>
    <FirstPage>1</FirstPage>
    <LastPage>10</LastPage>
    <Language>Chinese</Language>
    <PublicationType>Journal Article</PublicationType>
    <ArticleIdList>
      <ArticleId IdType="doi">10.1055/s-2007-985171</ArticleId>
      <ArticleId IdType="url">http://www.imicams.ac.cn</ArticleId>
    </ArticleIdList>
    <Abstract>....</Abstract>
    <KeywordsList>
      <Keywords>Keywords1</Keywords>
      <Keywords>Keywords1</Keywords>
    </KeywordsList>
    <MeSHList>
      <MeSH>MeSH1</MeSH>
      <MeSH>MeSH1</MeSH>
    </MeSHList>
  </Article>
 </ArticleSet>

XML文档太长,截了其中一部分..

参考文献:http://blog.csdn.net/ivory_lei/article/details/6892537

企鹅:61489385

© 著作权归作者所有

共有 人打赏支持
AK灬

AK灬

粉丝 46
博文 343
码字总数 142342
作品 0
朝阳
后端工程师
四种生成和解析XML文档的方法详解(介绍+优缺点比较+示例)

众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM、SAX、JDOM和DOM4J 下面首先给出这四种方法的jar包下载地址 DOM:在现在的Java JDK里都自带了,在xml-apis.jar包里 SA...

Henrykin
2016/11/03
48
0
Java程序员从笨鸟到菜鸟之(二十七)XML之Jdom和DOM4J解析 .

jdom解析 JDOM是一种使用 XML 的独特 Java 工具包,用于快速开发 XML 应用程序。它的设计包含 Java 语言的语法乃至语义。 JDOM是一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实...

长平狐
2012/11/12
112
0
java 中jdom包的简单使用

1、jdom 1.1 是什么? 1.2 用来干什么? 1.3 怎么用? 1.4 使用后感悟和小结! 1.1 Jdom 是一种java工具包,利用纯Java技术对XML文档进行解析,生成,序列化和多种操作。 1.2 Jdom 是用来快速...

thinkerfans
2013/06/21
0
0
XML生成和解析

1、DOM方式解析XML 给予DOM的解析方式,是把整个XML文档加载到内存,转化成DOM树,可以随机的访问DOM树的任何数据,速度快、比较灵活,但是消耗资源比较多,不适用大的xml文档解析,测试超过...

祁猛
2016/10/19
24
0
Java解析XML的四种方法

XML文件解析方法 XML在不同的语言里解析方式都是一样的,只不过实现的语法不同而已。基本的解析方式有两种,一种叫SAX,另一种叫DOM。SAX是基于事件流的解析,DOM是基于XML文档树结构的解析。假...

wersdffg
2015/07/23
4.2K
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

qduoj~前端~二次开发~打包docker镜像并上传到阿里云容器镜像仓库

上一篇文章https://my.oschina.net/finchxu/blog/1930017记录了怎么在本地修改前端,现在我要把我的修改添加到部署到本地的前端的docker容器中,然后打包这个容器成为一个本地镜像,然后把这...

虚拟世界的懒猫
44分钟前
1
0
UML中 的各种符号含义

Class Notation A class notation consists of three parts: Class Name The name of the class appears in the first partition. Class Attributes Attributes are shown in the second par......

hutaishi
55分钟前
0
0
20180818 上课截图

小丑鱼00
今天
1
0
Springsecurity之SecurityContextHolderStrategy

注:下面分析的版本是spring-security-4.2.x,源码的github地址是: https://github.com/spring-projects/spring-security/tree/4.2.x 先上一张图: 图1 SecurityContextHolderStrategy的三个......

汉斯-冯-拉特
今天
0
0
LNMP架构(Nginx负载均衡、ssl原理、生成ssl密钥对、Nginx配置ssl)

Nginx负载均衡 网站的访问量越来越大,服务器的服务模式也得进行相应的升级,比如分离出数据库服务器、分离出图片作为单独服务,这些是简单的数据的负载均衡,将压力分散到不同的机器上。有时...

蛋黄_Yolks
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部