/ / Aktualizowanie elementów xml za pomocą antxml, xslt, ant, ant-contrib

Aktualizowanie elementów xml przy użyciu programów antxml, xslt, ant, ant-contrib

Mam plik XSL, który działa jako plik konfiguracyjny dla mojej aplikacji. W rzeczywistości jest to plik XML, który zawiera elementy owinięte wokół niego. Ten plik nazywa się Config.xsl:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"           xmlns="http://www.example.org/Config">
<xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes"               standalone="yes" />
<xsl:template match="/">
<Config>
<Test>somevalue</Test>
<Test1>someothervalue</Test1>
</Config>
</xsl:template>

Chciałbym zmienić wartość elementu Test1 z nową wartością.

Poniżej znajduje się mój kod mrówki, którego używam do aktualizacji wartości.

<?xml version="1.0" encoding="utf-8" ?>
<project name="Scripts" default="test">
<taskdef resource="net/sf/antcontrib/antcontrib.properties" />
<taskdef name="xmltask" classname="com.oopsconsultancy.xmltask.ant.XmlTask"/>
<target name="test">
<xmltask source="Config.xsl" dest="Config.xsl">
<replace path="Config/Test1/text()" withText="newvalue" />
</xmltask>
</target>
</project>

Byłbym wdzięczny, gdyby ktoś mógł dać mi znać, jak uzyskać tę pracę.

Odpowiedzi:

2 dla odpowiedzi № 1

Wygląda na to, że mylisz się z przestrzenią nazw. Musisz go obsłużyć przed wymianą czegokolwiek. Aby uzyskać więcej informacji na temat tego, jak zadanie XML obsługuje go https://today.java.net/pub/a/today/2006/11/01/xml-manipulation-using-xmltask.html#paths-and-namespaces. Możesz jednak użyć tego kodu, aby uzyskać pożądany wynik:

wkład:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.example.org/Config">
<xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes" standalone="yes"/>
<xsl:template match="/">
<Config>
<Test>somevalue</Test>
<Test1>someothervalue</Test1>
</Config>
</xsl:template>
</xsl:stylesheet>

Skrypt ANT:

<project name="XML-VALIDATION" default="main" basedir=".">
<taskdef name="xmltask" classname="com.oopsconsultancy.xmltask.ant.XmlTask"/>
<target name="main">
<xmltask source="config.xsl" dest="output.xml">
<replace path="//:Config/:Test1/text()">xxxxxxx</replace>
</xmltask>
</target>
</project>

wydajność:

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.example.org/Config" version="1.0">
<xsl:output encoding="utf-8" indent="yes" method="xml" standalone="yes" version="1.0"/>
<xsl:template match="/">
<Config>
<Test>somevalue</Test>
<Test1>xxxxxxx</Test1>
</Config>
</xsl:template>
</xsl:stylesheet>