如何将`fileset`返回的路径连接到XML文件?

时间:2015-09-29 14:09:04

标签: ant path fileset

我正在尝试将未知数量的HTML文件连接到一个XML文件中。 这没问题:

<concat destfile="${temp.dir}/file.xml" encoding="UTF-8" outputencoding="UTF-8">
    <fileset dir="${html.dir}" includes="**/*.html" />
</concat>

现在我要做的是,对于fileset的每个文件,将其路径插入到连接文件中。

实施例

我在C:\whatever\sources中有以下HTML文件:

  • A.html
  • B.html

在结果XML文件中,我想得到:

  <allfiles>
   <html url="C:\whatever\sources\A.html>...content of A.html...</html>
   <html url="C:\whatever\sources\B.html>...content of B.html...</html>
  </allfiles>

有没有办法在没有重新发明轮子的情况下完成这项工作,如果可能的话,不使用ant-contrib

1 个答案:

答案 0 :(得分:0)

作为mentioned,您可以使用scriptfilter内部filterchain任务在Ant版本中运行Javascript。

例如:

<concat destfile="${temp.dir}/file.xml" encoding="UTF-8" outputencoding="UTF-8">
    <fileset dir="${html.dir}" includes="**/*.html" id="my-files"/>
    <filterchain>
        <tokenfilter>
            <filetokenizer />
                 <scriptfilter language="javascript" byline="false"><![CDATA[
                     content = self.getToken();
                     // Modify content of token.
                     //content=content.replaceAll("(?s)/\\*.*?\\*/","");
                     self.setToken(content);
            ]]></scriptfilter>
        </tokenfilter>
        <striplinecomments>
            <comment value="//"/>
        </striplinecomments>
        <striplinebreaks/>
    </filterchain>
</concat>

在以下位置查找更多示例: