xmltask (ANT):: заменить на текст, не работающий для нулевого значения элемента xml

Я пытаюсь заменить значение поля XML с помощью xmltask (сценарий ANT) . Но это не заменяет значение, если элемент xml пуст.

например:

   <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/no.

что нужно сделать, чтобы обработать нулевые значения и заменить его новым значением?

1 ответ

Вы можете полностью заменить элемент doclocation для всех случаев, используя раздел CDATA, например:

     <property name="newURL" value="https://www.stackru.com"/>
     <xmltask source="sample.xml" dest="result.xml">
        <replace path="/Mydoc/doc[docname='mmm.txt']/doclocation">
           <![CDATA[ <doclocation>${newURL}</doclocation> ]]>
        </replace>
     </xmltask>
Другие вопросы по тегам