在Java中按模板解析文档

时间:2014-02-17 05:43:53

标签: java xml parsing template-engine

是否有任何现成的java库,在给定模板的情况下,可以读取符合该模板的xml文件并将其值解析为Java类?作业速度的排序是反过来的。

例如,给出以下模板

<person>
  <name>${person.name}</name>
  <age>${person.age}</age>
</person>

和输入文件

<person>
  <name>John</name>
  <age>20</age>
</person>

它可以将其值读入类

class Person {
    public String name;
    public Integer age;
}

更新 上面的示例旨在显示一般概念,与序列化无关。真实示例还可以具有与不同Java对象相关的字段对应的元素和属性,并且输入文件可以具有不能用于使用位于不同XML元素的不同属性上的值来反序列化对象的结构。所以这不是序列化问题。

3 个答案:

答案 0 :(得分:4)

你可能也想看看Apache Digester:http://commons.apache.org/proper/commons-digester/guide/core.html - 这并没有使用模板方法,但它看起来非常适合这里陈述的问题。

(最初的评论:但OP表示这为他们提供了一个可行的解决方案 - 所以转而回答)

答案 1 :(得分:2)

另一个优秀的XML序列化器/解串器是Simple

File source = new File("person.xml");
Person person = serializer.read(Person.class, source);

答案 2 :(得分:1)

您确定需要模板吗? 也许从XML到Object的序列化对您来说已经足够了,那么您可以尝试XStream http://x-stream.github.io/tutorial.html