У меня есть файл XML, который выглядит примерно так:Ant - XmlTask - Xpath предикат Xmlns
<?xml version="1.0" encoding="UTF-8"?>
<Profile xmlns="http://soap.sforce.com/2006/04/metadata">
<applicationVisibilities>
<application>SomeApp</application>
<default>true</default>
<visible>true</visible>
</applicationVisibilities>
<applicationVisibilities>
<application>AnotherApp</application>
<default>false</default>
<visible>true</visible>
</applicationVisibilities>
<applicationVisibilities>
<application>YetAnotherApp</application>
<default>false</default>
<visible>true</visible>
</applicationVisibilities>
...
</Profile>
В муравей задачи Я хочу, чтобы выбрать любые элементы, которые по умолчанию имеют значение ИСТИНА, и изменить их к ложному. Я могу почти добраться:
<target name="resetApps">
<xmltask todir="stage/deploy/profiles/">
<fileset id="fileset" dir="stage/profiles/">
<include name="**/*.profile"/>
</fileset>
<replace path="//*[local-name()='applicationVisibilities']/*[local-name()='default']/text()" withText="false"/>
</xmltask>
</target>
(который просто устанавливает их все к ложным, независимо от настроек в)
Тогда я хочу, чтобы установить «SomeApp» по умолчанию = верно.
Опять же, я могу получить почти там, если я не должен указать локальный_файл имя():
<replace path="/Profile/applicationVisibilities[application='SomeApp']/default/text()" withText="true"/>
Так как же я совместить имя-местный() материал с предикатом для вытаскивания "SomeApp"?
Я не знаком с муравьем, но учитывая, что это, кажется, все о манипуляции XML, я думаю, что он должен предоставить способ работать с пространствами имен должным образом. Посмотрите, как это сделать. – JLRishe