2017-07-08 9 views
1

xmltask(ANTスクリプト)を使用してxmlフィールド値を置き換えようとしています。しかし、xml要素が空の場合は値を置き換えません。例えばxmltask(ANT):: xml要素のヌル値の代わりにwithtextを置換しない

<Mydoc> 
     <doc> 
     <docname>abc.txt</docname> 
     <doclocation>xyz</doclocation> 
     </doc> 
     <doc> 
     <docname>mmm.txt</docname> 
     <doclocation></doclocation> 
     </doc> 
    </Mydoc> 

in the above example i want to update the "doclocation" element if "docname" element is "mmm.txt" 

スクリプトは、それを達成するために使用されます。

 <xmltask dest="sample.xml"> 
     <fileset file="sample.xml"/> 

      <replace 
      path="/Mydoc/doc[docname="mmm.txt"]/doclocation/text()" 
      withText="newURL"/> 

      </xmltask> 

'doclocation'要素にnull値がない場合、上記のコードは機能しません。

null値を処理して新しい値に置き換えるには、ここで何を行う必要がありますか?あなたは、CDATAセクションを使用して、すべてのケースのために完全にdoclocation要素を置き換えることができます

答えて

0

、例えば:テキストが存在しない場合は

 <property name="newURL" value="https://www.stackoverflow.com"/> 
    <xmltask source="sample.xml" dest="result.xml"> 
     <replace path="/Mydoc/doc[docname='mmm.txt']/doclocation"> 
      <![CDATA[ <doclocation>${newURL}</doclocation> ]]> 
     </replace> 
    </xmltask> 
+0

は、テキストを置換する方法は、あります? – nikhil

+0

このコードはまたはで有効です。それはあなたが求めていることですか? –

+0

はい、エレメント全体をCdataタグに置き換えることなくまたは<エレメントにテキストを挿入できるはずです。 – nikhil