2011-01-21 17 views
0

smooksを使用してxmlをあるフォーマットから別のフォーマットに変換しようとしています。ソースXMLを以下に示しているもののようになります。Smooks複数の挿入ポイントを使用したXML-XML変換

<page> 
    <responsedata> 
     <header> 
      ... 
      <ref_no>xyz</ref_no> 
     </header> 
     <detail> 
      <acc_no>x</acc_no> 
      <ac_ccy>y</ac_ccy> 
      <avail_bal>z</avail_bal> 
     </detail> 
     <detail> 
      ... 
     </detail> 
    </responsedata> 
</page> 

私はこのような何かに上記tranformしようとしています。このため

<detail> 
    <ref_no>xyz</ref_no> 
    <accounts> 
     <account> 
      <Account_no>x</Account_no> 
      <Curr>y</Curr> 
      <Avail_Bal>z</Avail_Bal> 
     </account> 
     <account> 
      ... 
     </account> 
    </accounts> 
</detail>   

を、私は次のSmooksの設定を使用:

<ftl:freemarker applyOnElement="responsedata"> 
    <ftl:template><!--<?xml version="1.0" encoding="UTF-8" ?> 
    <DETAIL> 
     <Ref_No>????<Ref_No> //how to bring the ref_no here 
     <Accounts> 
     <?TEMPLATE-SPLIT-PI?> 
     </Accounts> 
    </DETAIL> 
    --></ftl:template> 
</ftl:freemarker> 


<ftl:freemarker applyOnElement="detail"> 
    <ftl:template><!-- 
    <Account> 
     <Account_no>${detail.acc_no}</Account_no> 
     <Curr>${detail.ac_ccy}</Curr> 
     <Avail_Bal>${detail.avail_bal}</Avail_Bal> 
    </Account> 
    --></ftl:template> 
</ftl:freemarker> 

参照番号を除いて、私は他のすべてを変えることができます。これを達成するための提案は非常に高く評価されます。

答えて

0

Smooks javabeanの機能を使用して、その値をJavaオブジェクト(単にHashMapに入れます)にバインドし、FreemarkerテンプレートからそのBeanにアクセスできますか?

0
<resource-config selector="header"> 
    <resource>org.milyn.javabean.BeanPopulator</resource> 
    <param name="beanId">header</param> 
    <param name="beanClass">java.util.HashMap</param> 
    <param name="bindings"> 
     <binding property="refNo" selector="header/ref_no" /> 
    </param> 
</resource-config> 

<resource-config selector="header"> 
    <resource type="ftl"> 
     <![CDATA[<detail> 
     <ref-no>${header.refNo}</ref-no> 
     ... 
     </detail>]]> 
     </resource> 
</resource-config> 
+0

複数行のコードにマークを付ける場合は、行ごとに 'を使用するのではなく、スペースを使用するか{}ボタンをクリックすることができます – n00begon

関連する問題