Как написать build.xml, который будет иметь две цели / задачи для одного файла XML, который дает два выходных файла, используя два файла XSLT? - PullRequest
0 голосов
/ 24 октября 2018

Рассмотрим этот input.xml

<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl"?> 

<Settings>
    <Setting name="mail">
        <SettingAttributes>
            <SettingAttribute name="warning" value="yes">
            <SettingAttribute name="namestyle" value="None">
        </SettingAttributes>
    </Setting>

    <Setting name="camera">
        <SettingAttributes>
            <SettingAttribute name="allow" value="No">
            <SettingAttribute name="effect" value="No">
        </SettingAttributes>
    </Setting>
<Settings>

Так что я хочу сейчас написать файл build.xml с целями.Одна цель для настройки почты и другая цель для настройки камеры.У меня есть две таблицы стилей XSLT для преобразования каждой из этих настроек.Как мне реализовать это в Build.xml

Я пытался написать приведенный ниже код для build.xml

<?xml version = "1.0"?>
<project name="CDF structure">
    <target name="mail">
        <xslt in="input.xml" out="E:Workspace\AntTrial\res\values\conf.xml"
            style="mail_xslt.xsl">
        </xslt>
    </target>

    <target name="Camera">
        <xslt in="input.xml" 
         out="E:Workspace\AntTrial\res\system\values\config.prop"
         style="camera_xslt.xsl">
        </xslt>
    </target>
</project>

Приведенный выше build.xml не выдает желаемый результат.

Пожалуйста, помогите мне продолжить.

1 Ответ

0 голосов
/ 27 октября 2018

Почему бы просто не сделать это в одном файле xslt и одной цели:

<xsl:template match="Setting[@name='mail']">
    <xsl:result-document href="E:Workspace\AntTrial\res\values\conf.xml">
    <!--Whatever you want here-->
    </xsl:result-document>
</xsl:template>

<xsl:template match="Setting[@name='camera']">
    <xsl:result-document href="E:Workspace\AntTrial\res\values\conf.xml">
    <!--Whatever you want here-->
    </xsl:result-document>
</xsl:template>

Тогда в вашем файле сборки есть:

<target name="transform">
    <xslt in="input.xml" style="xslt.xsl" destDir="${destDir}"/>
</target>
...