【问题标题】:How to avoid xml header while concatenating xml files in ant script [duplicate]在ant脚本中连接xml文件时如何避免xml标头[重复]
【发布时间】:2016-06-12 23:00:23
【问题描述】:

我将文件夹中的所有 xml 文件连接到 ant 脚本中的单个 xml 文件中。在连接 xml 文件时,标题

 <?xml version="1.0" encoding="UTF-8" ?> 

在所有 xml 文件中都附加到输出 xmlfile 中。

有什么办法可以避免这个标题?

  <concat destfile="${docbook.dir}/all-sections.xml"
      force="no">       
   <fileset dir="${docbook.dir}"
     includes="sections/*.xml"/>
   </concat>

【问题讨论】:

标签: java xml ant xml-parsing


【解决方案1】:

您可以应用正则表达式来丢弃标题:

<concat destfile="${docbook.dir}/all-sections.xml" force="no">       
    <fileset dir="${docbook.dir}" includes="sections/*.xml"/>
    <filterchain>
        <linecontainsregexp negate="true">
            <regexp pattern="&lt;\?xml version"/>
        </linecontainsregexp>
    </filterchain>  
 </concat>

https://ant.apache.org/manual/Types/filterchain.html

编辑:如果您想保留第一次出现的标题,那么这是一个选项:

<property name="first" value="true"/>

<concat destfile="${docbook.dir}/all-sections.xml">       
    <fileset dir="${docbook.dir}" includes="sections/*.xml"/>
    <filterchain>
        <scriptfilter language="javascript">
        <![CDATA[
            first = project.getProperty("first");
            if(self.getToken().indexOf("<\?xml version") != -1) {
                if(first == "true") {
                    project.setProperty("first", "false");
                } else {
                    self.setToken(null);
                }
            }
        ]]> 
        </scriptfilter>             
    </filterchain>
</concat>

【讨论】:

  • 成功了。谢谢你。是否有可能具有第一次出现的值(如果首先找到则不删除)然后如果它在 xml 文件中重复则将其删除。
【解决方案2】:

有一个过滤器链。所以你可以使用'xml版本'或'编码'来过滤。

<filterchain>
         <linecontains>
          <contains value="xml version"/>
         </linecontains>
      </filterchain>

然后有一个Header可以添加为common。那里可以给common header。

<header filtering="no" trimleading="yes">
      ----Put  Header---
</header>

函数参考:https://googleweblight.com/?lite_url=https://ant.apache.org/manual/Tasks/concat.html&ei=t1jfBWPU&lc=en-IN&s=1&m=717&host=www.google.co.in&ts=1456774849&sig=ALL1Aj6a3WOuua261FfWU1a1B-ULkTgOMw

【讨论】:

    猜你喜欢
    • 2016-06-12
    • 2017-03-04
    • 2012-04-30
    • 1970-01-01
    • 1970-01-01
    • 2021-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多