Java如何将Xml转换成纯文本 FreeMaker

http://fmpp.sourceforge.net/

 

模板:

<#assign year=10 />

<#assign mgsy=1090.23 /><#assign mgsy2=19903200.23 />

${year}

每股收益                        ${mgsy?string?left_pad(20,'-')}

扣除非经常性损益后每股收益      ${mgsy2?string?left_pad(20,'-')}

<#assign bir=birthday?date?string />

公布日期:                      ${bir?left_pad(20,'-')}

 

Java代码:

package com.lidoo.xml2text;

import java.util.*;

import java.io.*;

import freemarker.core.*;

import freemarker.template.*;

 

public class Test {

public static void main(String[] args) throws IOException, TemplateException{

Configuration cfg = new Configuration(); 

// 指定模板文件从何处加载的数据源,这里设置成一个文件目录。 

cfg.setDirectoryForTemplateLoading(

       new File("D://ITBooks//Eclipse//Projects//Xml2Text//templates")); 

// 指定模板如何检索数据模型,这是一个高级的主题了… 

// 但先可以这么来用: 

cfg.setObjectWrapper(new DefaultObjectWrapper());

// 创建根哈希表 

Map root = new HashMap(); 

// // 在根中放入字符串"user" 

// root.put("user", "Big Joe"); 

// // 为"latestProduct"创建哈希表 

// Map latest = new HashMap(); 

// // 将它添加到根哈希表中 

// root.put("latestProduct", latest); 

// // 在 latest中放置"url"和"name"  

// latest.put("url", "products/greenmouse.html"); 

// latest.put("name", "green mouse"); 

Date birthday = new  java.util.Date();

root.put("birthday", birthday);

Template temp = cfg.getTemplate("GB0101.ftl");

// //cfg.setLocale(java.util.Locale.CHINESE);

Writer out = new OutputStreamWriter(System.out); 

temp.process(root, out); 

out.flush(); 

}

}

转换纯文本的关键:
(1) 在Eclipse中支持ftl文件,对齐方式,先是不精确。最好在记事本中检查一次。
(2) 使用left_pad函数进行右对齐时,判断字符长度时,没有考虑一个中文汉字显示占用两个英文字符宽度。需要另外实现!
阅读更多
个人分类: C#
上一篇如何将HTML转换为纯文本格式Text
下一篇为什么中国的XBRL数据都不能免费下载?
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭