2016-02-28 199 views
0

我是新来的ant脚本。我正在寻找如何将两个或更多xml文件合并到ant脚本中的单个xml文件中。是否有可能通过蚂蚁来实现这一点。 在我的项目中,n个xml文件将在文件夹中动态生成,例如:server1.xml,manager.xml,server2.xml,server3.xml。我需要将所有在其文件名中包含服务器的xml文件(server1.xml,server2.xml,server3.xml)合并到一个xml中,例如:server.xml.and需要将其部署到jboss中。 我发现将内容从一个xml文件复制到另一个xml文件,如下所示。在Ant脚本中,如何将两个或多个xml文件内容合并到一个xml filr中

target name="servlet"> <xmltask    
source="src/web.xml" 
dest="target/web.xml"> <!-- 
nothing to do here yet -->  
    <\xmltask> </target>. 

回答

1

如果使用xmltask(http://www.oopsconsultancy.com/software/xmltask/),让我们说你有SRC1,SRC2和DEST为文件。 您可以先使用从缓冲区插入或粘贴从src1复制到src2,然后从src2复制到dest以相同的方式。

看看xmltask的插入:http://www.oopsconsultancy.com/software/xmltask/#usage.insert

没有测试过,但低于应该做你想要什么:

<target name="mergeServerFiles"> 
<xmltask clearBuffers="b"> 
    <fileset dir="${myDir}"> 
    <includes name="server*.xml"/> 
    </fileset> 
    <copy path="//sectionYouWantToCopy" buffer="b" append="true"/> 
</xmltask> 
<xmltask sourcebuffer="b" dest="server.xml" /> 
.... 
</target> 
+0

在XML文件中的我的项目n个将在一个文件夹,如动态生成的:server1.xml,manager.xml,server2.xml,server3.xml。我需要将所有在其文件名中包含服务器的xml文件(server1.xml,server2.xml,server3.xml)合并到一个xml中,例如:server.xml.and需要将其部署到jboss中。我正在尝试通过ant脚本实现thid。 – sam

+0

好的,编辑我的答案。 – Daniele

+0

该解决方案不起作用。 返回错误“无法使用多个缓冲节点作为输入源”。 – GuillaumeS

0

由于错误“无法同时使用多个缓冲节点作为输入源“,由Daniele提出的解决方案返回。 我做我的:

<for param="file"> 
    <path> 
     <fileset dir="directory" includes="server-*.xml" /> 
    </path> 
    <sequential> 
     <local name="name"/> 
     <basename file="@{file}" property="name" /> 
     <echo message="${name}"/> 

     <xmltask source="@{file}" clearbuffers="c"> 
      <copy path="/rootTag/*" buffer="c" append="true" /> 
     </xmltask> 

     <xmltask sourcebuffer="all" destbuffer="all"> 
      <paste path="/rootTag" buffer="c"/> 
     </xmltask> 
    </sequential> 
</for> 

<xmltask sourcebuffer="all" dest="server.xml" /> 
相关问题