Задача Ant для проверки существования узла xml в файле xml

У меня есть файл xml внутри, который я хочу добавить, скажем, xml

<car name="BMW">
   <color>Red</color>
   <model>x3</model>
   </car>

Я хочу проверить, существует ли узел, тогда я хочу обновить его, иначе я хотел бы добавить новый.

Я очень новичок в ant xmltask, поэтому мой вопрос может быть очень простым.

С уважением, Авинаш Нигам


person aviundefined    schedule 20.05.2013    source источник


Ответы (1)


используя дополнительный корневой тег <foo></foo> для вашего примера (необходим для операции вставки),
с xmltask вы можете использовать =

<!-- edit file in place, use other dest if you need to create a new file -->
<xmltask source="path/to/file.xml" dest="path/to/file.xml">
<!-- create property if car node with name='BMW' exists -->
<copy path="//car[@name='BMW']/text()" property="modelexists"/>
<!-- insert new car node if car node with name='BMW' doesn't exist -->
<insert path="/foo" unless="modelexists">
 <![CDATA[
 <car name="BMW">
  <color>Red</color>
  <model>x3</model>
 </car>
 ]]>
</insert>
<!-- replace car node if car node with name='BMW' exists -->
<replace path="//car[@name='BMW']" if="modelexists">
 <![CDATA[
 <car name="BMW">
  <color>Blue</color>
  <model>x4</model>
 </car>
 ]]>
</replace>
</xmltask>
person Rebse    schedule 21.05.2013