java是否可以使用XSLT和JXPath转换JavaBean?
假设我有一个香草爪哇豆:
class Person {
String firstName;
String lastName;
...
}
现在假设我想把它转换成另一个javabean:
class Human {
String name;
...
}
我目前正在使用JXPath帮助我将一个转换为另一个:
JXPathContext personContext = JXPathContext.newContext(person);
JXPathContext humanContext = JXPathContext.newContext(new Human());
humanContext.setValue("name", personContext.getValue("firstName") +
personContext.getValue("lastName"));
有没有一种方法可以将eg XSLT与JXPath结合使用来指定这些转换,而不是手工完成这类工作
# 1 楼答案
我认为仅使用JXPath是不可能的,因为这是一个XPath实现,而不是XSLT实现。XSLT使用XPath作为语言的一部分,但它不仅仅是这样
您可以尝试将bean序列化为XML,使用XSLT转换XML,并将生成的XML反序列化为目标类。因此,对于person对象,您可能会
您可以将XSLT与这样的模板结合使用
这将产生如下结果文档:
然后,可以将该文档反序列化为Human类的实例
注意:bean的XML表示是为了这个示例而构建的。实际上,您可以使用java。豆。XMLEncoder,或者您可以寻找任何其他现有的Java/XML绑定实现(JAXB等)