Anakia 转换xml文档为其他格式
一.简介
Anakia 使用JDOM 和Velocity将XML文档转换为特定格式的文档
二.解析xml文档方法
1.DOM
java jdk,xml-api.jar
需要加载整个xml文档来构建层次结构
2.SAX(Simple API for XML)
基于事件模型,不需要读取整个xml文档
3.JDOM(Java-based Document Object Model)
本身不包含解析器,通常使用SAX2解析器来解析和验证输入XML文档。
4.DOM4J
性能佳
http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/17/3082949.html
三.构建velocity
准备:
1.download ant
http://ant.apache.org/bindownload.cgi
配置ANT 环境变量
2.build
一开始参考官网的这篇文档https://velocity.apache.org/engine/devel/build.html
在velocity1.7 上面做的实验,出现了很多错误,错误记录在四。
- download velocity1.5
编辑 test.xml文件,放在examples\anakia\xdocs\about 目录下
可以添加 html tag。<document> <properties> <author email="st3690@163.com">FS</author> <title>Welcome</title> </properties> <body> <section name="Section 1"> <p> welcome to velocityLearning github </p> <img src="/images/velocity.gif" width="329" height="105"/> <p>you can add html tag</p> </section> <section name="Section 2"> <p> here is another section </p> </section> <section name="section 3"> <p><a href="https://github.com/FS1360472174/velocityLearning"> you can access this repository for more learning in github</a> </p> </section> </body> </document>
cd examples/anakia/build 执行 ant 命令。
就会在examples\anakia\docs\about 目录生成test.html
这边官网的velocity1.5 目录有点问题。根据错误信息修改了build.xml.将classpath 修改成只从lib目录读取
<path id="classpath">
<fileset dir="../../../lib">
<include name="**/*.jar"/>
</fileset>
</path>
具体查看github
四.velocity1.7的错误记录
- download maven
download:http://maven.apache.org/download.cgi
配置环境变量。
mvn -v 成功表示安装成功
- 在velocity/build 目录下执行
-> mvn install
报了这样的错误:”The goal you specified requires a project to execute but there is no POM in this directory” while doing Maven install.
缺少pom.xml
解决:
http://svn.apache.org/repos/asf/velocity/engine/tags/1.7/pom.xml
再次执行仍然报错,download错误,怀疑是网络问题,加上 -X debug 信息。这次成功build success.
在build下面 创建一个target 文件夹
- 在example/anakia/build 目录下面执行
->ant
发现1.7版本下面根本就没有这个目录,最后在1.5目录下面找到了这个。
五.总结
其实利用Anakia将xml文件转换为特定的文档格式很简单,但是官网的文档貌似很久没有更新。velocity不同版本
的目录记录貌似也有些差异。所以给开发者使用,造成了一定的阻碍,耽误了学习的时间。
从三,四步骤看来,利用maven build整个velocity似乎也没有必要。我们只用利用ant工具,调用
anakia task即可。不知道为什么官网的说明文档强调必须要有这步骤。
所有源码可以在这里找到:
https://github.com/FS1360472174/velocityLearning/anakia
Anakia 转换xml文档为其他格式的更多相关文章
- C#操作Xml:XSLT语法 在.net中使用XSLT转换xml文档示例
XSL即可扩展的样式表文件. 可以格式化xml的显示,也可以将xml转换成需要的另一种格式. 学习XSL必须熟悉XPath.XSL和XPath一样简单强大,容易学习. 1. XSL既然可以格式化xml ...
- JaveScript 中使用 XSLT转换XML文档
我们经常将数据存储在XML 中,在展示的时候需要转换为其它的形式,这里介绍使用XSLT 对XML数据进行转换. 要学习XSLT对XML的转换,需要先了解三个文件. 第一个是存储数据的XML文件:emp ...
- freeMarker(十三)——XML处理指南之揭示XML文档
学习笔记,选自freeMarker中文文档,译自 Email: ddekany at users.sourceforge.net 前言 尽管 FreeMarker 最初被设计用作Web页面的模板引擎, ...
- java将XML文档转换成json格式数据
功能 将xml文档转换成json格式数据 说明 依赖包:1. jdom-2.0.2.jar : xml解析工具包;2. fastjson-1.1.36.jar : 阿里巴巴研发的高性能json工具包 ...
- 【好文翻译】一步一步教你使用Spire.Doc转换Word文档格式
背景: 年11月,微软宣布作为ECMA国际主要合作伙伴,将其开发的基于XML的文件格式标准化,称之为"Office Open XML" .Open XML的引进使office文档结 ...
- 【.net 深呼吸】使用二进制格式来压缩XML文档
在相当多的情况下,咱们写入XML文件默认是使用文本格式来写入的,如果XML内容是通过网络传输,或者希望节省空间,特别是对于XML文档较大的情况,是得考虑尽可能地压缩XML文件的大小. XmlDicti ...
- (转载)将一段符合XML格式规范字符串插入已有XML文档当中
想我们已经存在一个XML文档,结构如下: < xmlversion="1.0"encoding="utf-8">< employees&g ...
- 如何:执行大型 XML 文档的流式转换 大XML文件解析入库的一个方法
w Parsing Huge XML Files Incrementally http://pclib.github.io/safari/program/python-cookbook/Text/ch ...
- 编写Java程序,使用 dom4j 创建一个 XML 文档,文档名为“city.xml”。注意该文档的格式和数据
查看本章节 查看作业目录 需求说明: 使用 dom4j 创建一个 XML 文档,文档名为"city.xml".该文档的格式和数据如图所示 实现思路: 创建Java项目,添加dom4 ...
随机推荐
- [ZJOI 2006]书架
Description 小T有一个很大的书柜.这个书柜的构造有些独特,即书柜里的书是从上至下堆放成一列.她用1到n的正整数给每本书都编了号. 小T在看书的时候,每次取出一本书,看完后放回书柜然后再拿下 ...
- NOIP 2011 观光公交
题目描述 风景迷人的小城Y 市,拥有n 个美丽的景点.由于慕名而来的游客越来越多,Y 市特意安排了一辆观光公交车,为游客提供更便捷的交通服务.观光公交车在第 0 分钟出现在 1号景点,随后依次前往 2 ...
- ●BZOJ 3796 Mushroom追妹纸
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=3796 题解: 题意: 给出三个串 A,B,C 找出一个最长串 S, 使得 ...
- mysql 及 posgresql之优劣势大比拼
特性 MySQL PostgreSQL 实例 通过执行 MySQL 命令(mysqld)启动实例.一个实例可以管理一个或多个数据库.一台服务器可以运行多个 mysqld 实例.一个实例管理器可以监视 ...
- Python中list的功能介绍
List的功能介绍 1. 列表的两种方法 1. 列表的内置方法 列表的相加 格式:x.__add__(y)等同于x+y 例如:list1 = [1,2,3] print(list1.__add__([ ...
- 第五次C语言作业
(一)改错题 输出华氏摄氏温度转换表:输入两个整数lower和upper,输出一张华氏摄氏温度转换表,华氏温度的取值范围是{lower,upper},每次增加2℉.计算公式如下: c = 5×(f-3 ...
- iOS 隐藏导航条分割线
// 导航条分割线 @property (nonatomic, strong) UIView *navSeparateView; // 获取导航条分割线 UIView *backgroundView ...
- php留言板的实现
留言板功能的实现,主要就是通过编程语言对数据库进行操作,简单说也就是插入和查询的实现.不管是什么语言进行实现,道理都是一样的. 应学习需要,这里用php世界上最美的语言来进行实现. 主要步骤为: 连接 ...
- SpringBoot 中 get/post 请求处理方式,以及requestboy为Json时的处理
GET.POST方式提时, 根据request header Content-Type的值来判断: application/x-www-form-urlencoded, 可选(即非必须,因为这种情况的 ...
- openwrt 下添加sim760ce usb驱动
SIM7500_SIM7600 系列模块的 USB VID 是 0x1E0E PID 是 0x9001. 作为 Slave USB 设备,配置如下表 USB 接口波特率自适应 9600.115200 ...