2009-11-18 25 views
7

¿Qué código podría utilizar en sustitución de <xsl:copy-of select="tag"/>, que cuando se aplica a la siguiente xml ..XSL: copia de excluir a los padres

<tag> 
    content 
    <a> 
    b 
    </a> 
</tag> 

..would da el siguiente resultado:?

content 
<a> 
    b 
</a> 

Deseo eco de todo el contenido de la misma, pero excluyendo la etiqueta principal


Básicamente he varias secciones de contenido en mi archivo XML, el formato HTML, agrupados en las etiquetas XML
Deseo acceder a ellos de forma condicional & eco a cabo
Por ejemplo: <xsl:copy-of select="description"/>
las etiquetas de padres adicionales generadas no afectará el navegador sin embargo, son etiquetas no válidas, & Preferiría poder eliminarlas
¿Estoy hablando de esto de una manera totalmente incorrecta?

Respuesta

12

Desde desea incluir la parte content así, tendrá la función de node(), no el operador *:

<xsl:copy-of select="tag/node()"/> 

He probado esto en el ejemplo de entrada y el resultado es el ejemplo de resultado:

content 
<a> 
    b 
</a> 

Sin-codificación duro el nombre de nodo raíz, esto puede ser:

<xsl:copy-of select="./node()" /> 

Esto es útil en situaciones en las que ya está procesando el nodo raíz y desea una copia exacta de todos los elementos, excluyendo el nodo raíz. Por ejemplo:

<xsl:variable name="head"> 
    <xsl:copy-of select="document('head.html')" /> 
</xsl:variable> 
<xsl:apply-templates select="$head" mode="head" /> 

<!-- ... later ... --> 

<xsl:template match="head" mode="head"> 
    <head> 
    <title>Title Tag</title> 
    <xsl:copy-of select="./node()" /> 
    </head> 
</xsl:template> 
3

Como complemento de la respuesta de Welbog, que cuenta con mi voto, recomiendo escribir plantillas separadas, a lo largo de las líneas de este:

<xsl:template match="/"> 
    <body> 
    <xsl:apply-templates select="description" /> 
    </body> 
</xsl:template> 

<xsl:template match="description"> 
    <div class="description"> 
    <xsl:copy-of select="node()" /> 
    </div> 
</xsl:template> 
Cuestiones relacionadas