2012-08-04 12 views

Respuesta

3
  1. Cree un XmlReader para el archivo de entrada.
  2. Coloque el lector en el primer elemento de trabajo.
  3. Cree un subárbol XmlReader utilizando ReadSubtree Method.
  4. Crea un XmlWriter para el archivo de salida.
  5. Copie los contenidos del subárbol XmlReader en el XmlWriter utilizando el WriteNode Method.
  6. Coloque el lector original en el siguiente elemento de trabajo, continúe como con el primer elemento de trabajo.
    Rompe si no hay más elementos de trabajo para leer.
0

Si los datos realmente se ven exactamente como los describió (incluido el espacio en blanco), entonces la mejor opción sería usar StreamReader. Tiene un método para leer hasta el final de la línea actual. Lees líneas hasta llegar al </job>. Luego purgue ese trabajo y repita.

Además, no creo que XmlReader sea una mala opción.

2

Es pronto aún para XSLT 3.0 y streaming, pero la siguiente hoja de estilo XSLT 3.0 debe hacer el trabajo en Saxon-EE 9.4:

<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:mode streamable="yes" on-no-match="shallow-copy"> 
<xsl:template match="job"> 
    <xsl:result-document href="job{position()}.xml"> 
    <xsl:next-match/> 
    </xsl:result-document> 
</xsl:template> 
</xsl:stylesheet> 
Cuestiones relacionadas