xslt - 将参数传递给 xslt 作为 apache camel 中的节点
问题描述
是否可以将参数作为节点而不是字符串传递?
骆驼背景:
<setHeader headerName="document_as_node">
<simple>${body}</simple>
</setHeader>
xslt:
<xsl:param name="document_as_node" />
body 是一个 xml 文档,但我将它作为字符串传递(当我尝试在 xpath 中使用此参数时出现错误)。如何将其作为节点传递或如何转换它?
解决方案
希望这个例子会有所帮助:
from("timer:foo?period=30s")
.setBody(constant("<oldWrapTag><someTag>123</someTag></oldWrapTag>"))
.convertBodyTo(org.w3c.dom.Document.class)
.setBody(xpath("//someTag"))
.setHeader("insert", simple("body"))
.to("xslt:/xslt/test.xsl")
.to("log:body?showBody=true")
;
xslt:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="insert"/>
<xsl:template match="/">
<xsl:element name="wrapTag">
<xsl:copy-of select="$insert"/>
</xsl:element>
</xsl:template>
输出:
2018-10-24 14:03:07,952 | INFO | 10 - timer://foo | body | 247 - org.apache.camel.camel-core - 2.16.3 | Exchange[ExchangePattern: InOnly, BodyType: String, Body: <?xml version="1.0" encoding="UTF-8"?><wrapTag><someTag>123</someTag></wrapTag>]
推荐阅读
- python - osmnx 和 geopandas 可视化城市地图
- css - 破碎的滚动
- c++ - 如何在 C++ 中引用文件位置?
- algorithm - 可以仅从中序遍历构造二叉搜索树吗?
- bash - 从 bash 脚本运行 docker
- python - Seaborn:在种类='count'的catplot的条形标签中将Bool替换为是/否
- typescript - 如何访问索引器下方嵌套类型中的属性类型?
- configuration - MSYS2 的 GMP 配置仍然不完整
- visual-studio - 项目属性上的 Visual Studio Xamarin 签名选项卡错误,并且 Debug 被命名为项目名称而不是设备列表
- firebase - 一次将多个文档添加到 Firestore 时的 UI 堆栈