0

このようなxmlファイル(myxml.xml)があります

<fileset dir ="C:\dir1">
    <include name="abc.txt">
    <include name ="def.txt">
</fileset>
<fileset dir ="C:\dir2">
    <include name="abc2.txt">
    <include name ="def2.txt">
</fileset>

Ant build.xml を使用してこのファイルを解析し、text1.txt と text2.txt という 2 つの txt ファイルを次の内容で作成したいと考えています。

text1.txt

C:\dir1\abc.txt
C:\dir1\def.txt

text2.txtを持つ必要があります

C:\dir2\abc2.txt
C:\dir2\def2.txt

どうすればこれを達成できるか考えてください:)

4

2 に答える 2

0

これを試して:

ビルドファイル:

<project default="createfile2">
<target name="createfile1">
    <xslt in="myxml.xml" out="text1.txt" style="test1.xslt">
        <param name="d" expression="C:\dir1"/>
    </xslt>
</target>

    <target name="createfile2" depends="createfile1">
    <xslt in="myxml.xml" out="text2.txt" style="test1.xslt">
        <param name="d" expression="C:\dir2"/>
    </xslt>
</target>
</project>

XSLT 変換

<?xml version="1.0" standalone="yes"?> 
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:param name="d"/>
 <xsl:output omit-xml-declaration="yes" method="html"  indent="no"/>
 <xsl:strip-space elements="*"/>
<xsl:template match="/root/fileset[@dir=$d]">
    <xsl:for-each select="include">
        <xsl:value-of select="$d"/>\<xsl:value-of select="@name"/>
<xsl:text>
</xsl:text>
    </xsl:for-each>
</xsl:template>
</xsl:stylesheet>

出力ファイル

text1.txt

C:\dir1\abc.txt
C:\dir1\def.txt

text2.txt

C:\dir2\abc2.txt
C:\dir2\def2.txt
于 2012-09-11T19:25:58.777 に答える
0

build.xml ファイルにタグを含めるオプションがある場合は、<fileset>次のように、ファイルセットの内容を含むテキスト ファイルを作成できます。

<target name="create-text1">
  <fileset dir="C:\dir1" id="dir1.files">
    <include name="abc.txt" />
    <include name ="def.txt" />
  </fileset>
  <pathconvert pathsep="${line.separator}"
      property="text1" refid="dir1.files"/>
  <echo file="text1.txt" message="${text1}" />
</target>

<target name="create-text2">
  <fileset dir="C:\dir2" id="dir2.files">
    <include name="abc2.txt" />
    <include name ="def2.txt" />
  </fileset>
  <pathconvert pathsep="${line.separator}"
      property="text2" refid="dir2.files"/>
  <echo file="text2.txt" message="${text2}" />
</target>
于 2012-09-11T16:25:18.123 に答える