【发布时间】:2014-07-08 09:50:41
【问题描述】:
我正在使用 Apache Camel 2.10.4 创建 xml 文档。我想在一个用例中将 xml 视为 html,因此我的 Camel 路由(在 Spring DSL 中定义)使用 xslt 将 xml 文档转换为 html。
xml 在 Java bean 中生成并作为 DOM 文档输出。
如果我在将文档交给 xslt 之前使用 convertBodyTo 将其转换为字符串,那么一切都很好。如果我忽略它,xslt 处理器不会在我的文档中找到元素。
这将返回一个 html 字符串,其中包含一个表格,其中包含我的 TVAnytime xml 文档中每个计划项目的一行:
<route>
<from uri="direct:show_bn"/>
<to uri="bean:gen"/>
<convertBodyTo type="java.lang.String"/>
<to uri="xslt:tva2html.xslt"/>
<setHeader headerName="Content-Type">
<constant>text/html;</constant>
</setHeader>
</route>
这将返回表格中没有行的html:
<route>
<from uri="direct:show_bn"/>
<to uri="bean:gen"/>
<to uri="xslt:tva2html.xslt"/>
<setHeader headerName="Content-Type">
<constant>text/html;</constant>
</setHeader>
</route>
在 bean 中执行的方法有这个签名:
public org.w3c.dom.Document process();
知道为什么会这样吗?当 xslt 处理获取 DOM 时,我怀疑命名空间感知处理有问题。
【问题讨论】:
标签: java xml spring xslt apache-camel