xpathを使用すると、正しいタグを見つけて読み取ることができます。しかし、どうやってそれを書くつもりですか? xlstの変換の中でxpathを使用する方法があります。 これで、キャメルヘッダー "myHeader"の要素に入れたい値を追加し、それをxsl:paramとしてxsltで使用することができます。 XMLを想定し
はその後
from("file:inbox?noop=true")
.setHeader("myHeader",constant("no"))
.to("xslt:mytransform.xslt")
.to("file:outbox/?fileName=out.xml");
がroot/details2 /ステータスに "ノー" の値を置く受信ボックスフォルダにあります。
どこ/ src/main/resourcesフォルダ内のmytransform.xlstは
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:param name="myHeader"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/root/details2/status[. = '']">
<status><xsl:value-of select="$myHeader"/></status>
</xsl:template>
</xsl:stylesheet>
のXpath /ルート/ details2 /ステータス[のようなものです。 = '']空のステータス要素に一致します
プロセッサ内のjacksonのようなXMLパーサーを使用して、設定値を簡単に使用できませんか? –
@SoucianceEqdamRashti私はGenericコードを書いていますが、マップする特定のpojoはありません。 Exchange本体は文字列になります。 – tvshajeer
あなたはpojoは必要ありません。あなたの交換を文字列に変換してbeanに渡し、jacksonに残りを処理させ、結果の文字列を交換先に戻すようにしてください。 –