jet(java エミッター テンプレート) に複数の xml 入力を与えることはできますか? できれば、例を教えてください。
1 に答える
直接行うことはできませんが、入力として複数のXMLを指定するために使用できるいくつかの手法があります。
一方のXMLファイルにもう一方の内部に名前を付けるか、2つの入力(または任意の数)に名前を付けるだけの3番目のXMLファイルを作成できます。JETへの入力XMLで名前が付けられたXMLファイルがあるとします。
<inputs>
<input name="...full file name here..." />
<inputs>
このファイルをロードして、次のようにJETで使用できます。
<c:load url="{/inputs/input/@name}" var="root"/>
loadタグはファイルを読み取り(デフォルトはXMLですが、他のタイプも入力できます)、指定した変数名(この場合は「root」)を介してその内容を使用できるようにします。通常、url属性はファイル名であるString値を想定していますが、モデル外の属性を使用しているため、ファイル名として使用する属性値を示すために中括弧とxpath表記を使用します。
ファイルをロードすると、その内容にアクセスできます。たとえば、そのXMLファイルのルート要素にcompanyという名前の属性がある場合、属性はc:getを使用してその属性値にアクセスできます。
<c:get select="$root/policies/@company" />
必要な数のファイルをロードできます。異なる変数名を使用して、解析された各ファイルのルートを参照するだけです。
命名規則を使用して、もう少し複雑にし、複数のファイルを同じディレクトリに保存することができます。次に、1つのディレクトリパスを指定して、すべての入力のファイル名を取得できます。