我正在使用Apache Camel 2.10.4创建xml文档。我想在一个用例中将xml查看为html,因此我的骆驼路线(在Spring DSL中定义)使用xslt将xml文档转换为html。

xml是在Java bean中生成的,并作为DOM文档输出。

如果我在将文档交给xslt之前使用convertBodyTo将Document转换为String,那么一切都很好。如果我不考虑这一点,则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时,名称空间感知处理有问题。

最佳答案

我只是在骆驼核心中添加了a quick test,所以无法重现该错误。

09-10 06:10
查看更多