问题: 我在类路径上有一些XSLT文件。这些有时会被某些同事的IDE无意中重新格式化,以便引入换行符。这会在转换后的XML中引入换行符,从而导致一系列其他问题。
我的问题是: 如何在将XSLT应用于camel路由中的XML文件之前对其进行修改。
请不要就如何解决问题提出其他建议。我想更多地了解骆驼及其内部结构。
我的路线看起来像那样:
@Component
class SomeRouteBuilder extends RouteBuilder {
@Autowired
SomeProcessor someProcessor
XStream xStream = new XStream()
@Override
void configure() {
xStream.alias("SomeTag", SomeClass.class)
from("direct:some-endpoint")
.streaming()
.to("xslt://xslt/SomeXsltWithLineBreaks.xsl?saxon=true")
.split(xpath("//SomeTag"))
.unmarshal(new XStreamDataFormat(xStream))
.process(someProcessor)
.end()
}
}
我尝试了以下内容,但从未触发过:
intercept().when(body().contains("stylesheet"))
.convertBodyTo(byte[].class, "iso-8859-1")
.setBody(body().regexReplaceAll("\\r\\n", "\\\n"))