2009-10-15 20 views
5

Queridos amigos, buenas tardes. Mi problema puede ser este es muy básico, es decir, cómo podemos eliminar el elemento raíz de un archivo xml utilizando xslt. Ejemplo de archivo Xml dado a continuación.Cómo eliminar el elemento raíz del archivo xml

<Result> 
<Jobs id="1"> 
    <Job ID="000000" PositionID="0000"> 
    <Title>Development Manager - Investment Banking - Equities Business</Title> 
    <Summary><![CDATA[An experienced Development Manager with previous experience leading a small to mid-size team of developers in a Java/J2EE environment. A hands on role, you will be expected to manage and mentor a team of developers working on a mix of greenfield and maintenance projects.&#160;&#160; My client, a well known investment bank, requires an experienced Development Manager to join their core technology team. This t]]></Summary> 
    <DateActive Date="2009-10-06T19:36:43-05:00">10/6/2009</DateActive> 
    <DateExpires Date="2009-11-05T20:11:34-05:00">11/5/2009</DateExpires> 
    <DateUpdated Date="2009-10-06 20:12:00">10/6/2009</DateUpdated> 
    <CompanyName>ABC Technology</CompanyName> 
    </Job> 
</Jobs> 
</Result> 

lo tanto, quiero la salida de la siguiente manera

<Jobs> 
    <Job ID="000000" PositionID="0000"> 
    <Title>Development Manager - Investment Banking - Equities Business</Title> 
    <Summary><![CDATA[An experienced Development Manager with previous experience leading a small to mid-size team of developers in a Java/J2EE environment. A hands on role, you will be expected to manage and mentor a team of developers working on a mix of greenfield and maintenance projects.&#160;&#160; My client, a well known investment bank, requires an experienced Development Manager to join their core technology team. This t]]></Summary> 
    <DateActive Date="2009-10-06T19:36:43-05:00">10/6/2009</DateActive> 
    <DateExpires Date="2009-11-05T20:11:34-05:00">11/5/2009</DateExpires> 
    <DateUpdated Date="2009-10-06 20:12:00">10/6/2009</DateUpdated> 
    <CompanyName>ABC Technology</CompanyName> 
    </Job> 
</Jobs> 

Así, no más

<Result></Result> 

etiquetas en el archivo XML. Pls. ayuda. Gracias por adelantado.

+1

¿Puede dar formato a su pregunta para que podamos ver lo que es su están pidiendo? parece que tiene que ordenar < – Rippo

Respuesta

9
<!-- identity template --> 
<xsl:template match="node() | @*"> 
    <xsl:copy> 
    <xsl:apply-templates select="node() | @*" /> 
    </xsl:copy> 
</xsl:template> 

<!-- template for the document element --> 
<xsl:template match="/*"> 
    <xsl:apply-templates select="node()" /> 
</xsl:template> 

La identidad copias de molde todo como está, mientras que la plantilla para el elemento de documento sólo se ocupa de los nodos secundarios (entregarlos a la plantilla de identidad) mientras no copiar el nodo raíz en sí.

Si desea mantener su <summary> como CDATA por alguna razón, se necesita

<xsl:output cdata-section-elements="summary" /> 
+1

Esta forma de copiar elementos y jugar con ellos me ha ayudado mucho en XSLT. Muchas gracias por esta respuesta. –

+0

@geekam ¡Gracias por tus comentarios! :) – Tomalak

Cuestiones relacionadas