一.简介

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文档为其他格式的更多相关文章

  1. C#操作Xml:XSLT语法 在.net中使用XSLT转换xml文档示例

    XSL即可扩展的样式表文件. 可以格式化xml的显示,也可以将xml转换成需要的另一种格式. 学习XSL必须熟悉XPath.XSL和XPath一样简单强大,容易学习. 1. XSL既然可以格式化xml ...

  2. JaveScript 中使用 XSLT转换XML文档

    我们经常将数据存储在XML 中,在展示的时候需要转换为其它的形式,这里介绍使用XSLT 对XML数据进行转换. 要学习XSLT对XML的转换,需要先了解三个文件. 第一个是存储数据的XML文件:emp ...

  3. freeMarker(十三)——XML处理指南之揭示XML文档

    学习笔记,选自freeMarker中文文档,译自 Email: ddekany at users.sourceforge.net 前言 尽管 FreeMarker 最初被设计用作Web页面的模板引擎, ...

  4. java将XML文档转换成json格式数据

    功能 将xml文档转换成json格式数据 说明 依赖包:1. jdom-2.0.2.jar : xml解析工具包;2. fastjson-1.1.36.jar : 阿里巴巴研发的高性能json工具包 ...

  5. 【好文翻译】一步一步教你使用Spire.Doc转换Word文档格式

    背景: 年11月,微软宣布作为ECMA国际主要合作伙伴,将其开发的基于XML的文件格式标准化,称之为"Office Open XML" .Open XML的引进使office文档结 ...

  6. 【.net 深呼吸】使用二进制格式来压缩XML文档

    在相当多的情况下,咱们写入XML文件默认是使用文本格式来写入的,如果XML内容是通过网络传输,或者希望节省空间,特别是对于XML文档较大的情况,是得考虑尽可能地压缩XML文件的大小. XmlDicti ...

  7. (转载)将一段符合XML格式规范字符串插入已有XML文档当中

    想我们已经存在一个XML文档,结构如下:   < xmlversion="1.0"encoding="utf-8">< employees&g ...

  8. 如何:执行大型 XML 文档的流式转换 大XML文件解析入库的一个方法

    w Parsing Huge XML Files Incrementally http://pclib.github.io/safari/program/python-cookbook/Text/ch ...

  9. 编写Java程序,使用 dom4j 创建一个 XML 文档,文档名为“city.xml”。注意该文档的格式和数据

    查看本章节 查看作业目录 需求说明: 使用 dom4j 创建一个 XML 文档,文档名为"city.xml".该文档的格式和数据如图所示 实现思路: 创建Java项目,添加dom4 ...

随机推荐

  1. 领域驱动设计(DDD)笔记(一)

      最近在看<领域驱动设计>这本书,准备写点学习笔记博文记录系列.记录本书中的要点和疑惑,不定期更新!先放张MarginNote的图: Aggregate  每个Aggregate 都有一 ...

  2. slab机制

    1.内部碎片和外部碎片 外部碎片 什么是外部碎片呢?我们通过一个图来解释: 假设这是一段连续的页框,阴影部分表示已经被使用的页框,现在需要申请一个连续的5个页框.这个时候,在这段内存上不能找到连续的5 ...

  3. [Noi2013]书法家

    来自FallDream的博客,未经允许,请勿转载,谢谢. 小E同学非常喜欢书法,他听说NOI2013已经开始了,想题一幅“NOI”的字送给大家. 小E有一张非常神奇的纸,纸可以用一个n 行m 列的二维 ...

  4. salesforce lightning零基础学习(二) lightning 知识简单介绍----lightning事件驱动模型

    看此篇博客前或者后,看一下trailhead可以加深印象以及理解的更好:https://trailhead.salesforce.com/modules/lex_dev_lc_basics 做过cla ...

  5. [ 学习笔记 ] Hibernate框架学习之一

    一.JavaEE开发三层结构和三大框架的对应关系: Struts2框架 -> 表现层 web层(MVC是表现层的设计模型) 业务层 service层 Hibernate框架 -> 持久层 ...

  6. VMWare - Ubuntu 64 (16.04)之扩容介绍

    背景 貌似是一个老生常谈的问题哈,由于自己之前也没有弄过,今天正好有时间稍微折腾了一下. 这里就选择最简单的方式来为大家呈现. VMWare 的设置 没有什么可以过多说的,完全是图形操作.这里直接上图 ...

  7. 【vuejs深入二】vue源码解析之一,基础源码结构和htmlParse解析器

    写在前面 一个好的架构需要经过血与火的历练,一个好的工程师需要经过无数项目的摧残. vuejs是一个优秀的前端mvvm框架,它的易用性和渐进式的理念可以使每一个前端开发人员感到舒服,感到easy.它内 ...

  8. jquery easyui datagrid改变某行的值

    $("#DeterminateMembers").datagrid("updateRow",{index:index,row:{fzr:"0" ...

  9. Java 反射详解 转载

    java 反射 定义 功能 示例 概要: Java反射机制详解 | |目录 1反射机制是什么 2反射机制能做什么 3反射机制的相关API ·通过一个对象获得完整的包名和类名 ·实例化Class类对象 ...

  10. Linux部分常用命令整理

    ./ 相当于双击 [oracle@linux01 ~]$ PWD 查看绝对路径 [oracle@linux01 ~]$ cd - 返回上一次操作的目录 [oracle@linux01 ~]$ cd . ...