2012-02-06 1 views
1

"soql"という名前の要素の内容を置換フィルターの属性として使用します。私が達成したいのは、ファイルの値を要素の内容で置き換えることです。あなたはアリ(> 1.7)の合理的に最新のバージョンをお持ちの場合は値がCDATAブロックAntマクロは属性の値として要素の内容を使用します

<macrodef name="exportdata"> 
      <attribute name="file"/> 
      <attribute name="object"/> 
      <element name="soql"/> 
      <sequential> 
       <echo message="Exporting @{object}"/> 
       <mkdir dir="data/exports"/> 

       <copy file="data/config/template-process-conf.xml" tofile="data/config/process-conf.xml" overwrite="true" failonerror="true"/> 

          <replace file="data/config/process-conf.xml"> 
          <replacefilter token="_endpoint_" value="${sf.serverurl}"/> 

        <replacefilter token="_username_" value="${sf.username}"/> 
        <replacefilter token="_password_" value="${encryptedpassword}"/> 
          <replacefilter token="_object_" value="@{object}"/> 
          <replacefilter token="_soql_" value="@{soql}"/> 
          <replacefilter token="_file_" value="data/exports/@{file}.csv"/> 
        <replacefilter token="_keyfile_" value="data/config/key.txt"/> 
         </replace> 

       <java classname="com.salesforce.dataloader.process.ProcessRunner" classpath="lib/DataLoader.jar" failonerror="true"> 
        <sysproperty key="salesforce.config.dir" value="data/config"/> 
        <arg line="[email protected]{object}"/> 
       </java> 
      </sequential> 
     </macrodef> 

答えて

1

で囲む必要があり、この場合、私はあなたが使用することができるかもしれ属性を使用しないように傾斜していますこれを行うリソースはstringです。ここでは簡単な例です:

<macrodef name="element2string"> 
    <element name="elem"/> 
    <sequential> 
     <string id="elem.as.string"><elem/></string> 
     <echo message="${toString:elem.as.string}"/> 
    </sequential> 
</macrodef> 

<element2string> 
    <elem><![CDATA[There be <dragons>]]></elem> 
</element2string> 

結果:

[echo] There be <dragons> 
+0

は魅力のように働いた....ありがとう – rahul

関連する問題