que - read xml dom java example
Cómo evitar el encabezado xml mientras concatena los archivos xml en el script ant (2)
Hay una cadena de filtros. Así que puedes usar ''versión xml'' o ''codificación'' para filtrar.
<filterchain>
<linecontains>
<contains value="xml version"/>
</linecontains>
</filterchain>
Luego hay un encabezado que se puede agregar como común. Allí puede dar el encabezado común.
<header filtering="no" trimleading="yes">
----Put Header---
</header>
Esta pregunta ya tiene una respuesta aquí:
- Concatenar archivo xml en script ant 2 respuestas
Estoy concatenando todos los archivos xml en una carpeta en un único archivo xml en script de ant. Mientras concatena los archivos xml, el encabezado
<?xml version="1.0" encoding="UTF-8" ?>
en todos los archivos xml se anexan en la salida xmlfile.
¿Hay alguna forma de evitar este encabezado?
<concat destfile="${docbook.dir}/all-sections.xml"
force="no">
<fileset dir="${docbook.dir}"
includes="sections/*.xml"/>
</concat>
Puede aplicar una expresión regular para descartar el encabezado:
<concat destfile="${docbook.dir}/all-sections.xml" force="no">
<fileset dir="${docbook.dir}" includes="sections/*.xml"/>
<filterchain>
<linecontainsregexp negate="true">
<regexp pattern="</?xml version"/>
</linecontainsregexp>
</filterchain>
</concat>
https://ant.apache.org/manual/Types/filterchain.html
EDITAR: Si desea mantener la primera aparición del encabezado, esta es una opción:
<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>