使用 ant 迭代 int xml 文件 [英] iterate int xml file using ant

查看:26
本文介绍了使用 ant 迭代 int xml 文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个包含以下结构的 Xml 文件.我想按节点读取 nod 并使用没有公共分隔符的值调用特定任务.在 Ant 中,这可能吗?

I´ve a Xml file with the struct below. I want to read the nod by node and call a specific task with the values without commom separator.In Ant this is possible ?

<projects>
<!-- first node -->
 <project>
    <name> </name>
    <url> </url>
    <package> </package>
 </project>

 <!-- Second node -->
 <project>
    <name> </name>
    <url> </url>
    <package> </package>
 </project>
<projects>

谢谢!

推荐答案

使用 XSLT 将输入的 XML 文件处理为随后执行的 ANT 脚本的任务.

Use the XSLT task to process the input XML file into an ANT script that is subsequently executed.

|-- build.xml
|-- projects-process.xsl
`-- projects.xml

运行会处理

$ ant
Buildfile: /home/mark/tmp/build.xml

run-projects:
     [xslt] Processing /home/mark/tmp/projects.xml to /home/mark/tmp/build-tmp.xml
     [xslt] Loading stylesheet /home/mark/tmp/projects-process.xsl

build:

dosomething:
     [echo] DOSOMETHING: 'Project 1' 'http://someurl1' 'project1'"

dosomething:
     [echo] DOSOMETHING: 'Project 2' 'http://someurl2' 'project2'"

BUILD SUCCESSFUL

projects.xml

<projects>

    <project>
        <name>Project 1</name>
        <url>http://someurl1</url>
        <package>project1</package>
    </project>

    <project>
        <name>Project 2</name>
        <url>http://someurl2</url>
        <package>project2</package>
    </project>

</projects>

projects-process.xsl

此 XSLT 样式表用于生成 ANT 脚本

projects-process.xsl

This XSLT stylesheet is used to generate an ANT script

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:output method="xml" indent="yes"/>

    <xsl:template match="/">
        <project name="genbuild" default="build">

            <target name="build">
                <xsl:apply-templates select="projects/project"/>
            </target>

            <target name="dosomething">
                <echo>DOSOMETHING: '${name}' '${url}' '${package}'"</echo>
            </target>

        </project>
    </xsl:template>

    <xsl:template match="project">
        <antcall target="dosomething">
            <param name="name"    value="{name}"/>
            <param name="url"     value="{url}"/>
            <param name="package" value="{package}"/>
        </antcall>
    </xsl:template>

</xsl:stylesheet>

build.xml

运行 XSLT 转换以处理 projects.xml 文件并生成 ANT 构建文件

build.xml

Runs the XSLT transform to process the projects.xml file and generate an ANT build file

<project name="demo" default="run-projects">

    <target name="run-projects">
        <xslt style="projects-process.xsl" in="projects.xml" out="build-tmp.xml"/>

        <ant antfile="build-tmp.xml"/>
    </target>

    <target name="clean">
        <delete file="build-tmp.xml"/>
    </target>

</project>

这篇关于使用 ant 迭代 int xml 文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆