Estoy intentando componer una hoja de estilo que, dada una entrada XML (obviamente) y un parámetro que especifica un "objetivo", producirá una lista de comandos que coinciden con ese objetivo. Esta es la hoja de estilos como está escrito:xsltproc parámetros de línea de comando utilizando stringparam
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:param name="target" select="cora_cmd"/>
<xsl:output method="xml" indent="yes"/>
<xsl:template match="command/program">
<xsl:if test="@name=$target">
<xsl:message terminate="no">found match <xsl:value-of select="$target"/> </xsl:message>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude">
<xsl:attribute name="href"><xsl:value-of select="../@help"/></xsl:attribute>
</xi:include>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
invoco xsltproc para ejecutar esta hoja de estilo de la siguiente manera:
xsltproc --param target cora_cmd gen-commands.xsl commands.xml
El problema que estoy encontrando es que no parece que el valor del parámetro de destino para establecerse. Al menos el nombre que proviene del mensaje parece ser una cadena vacía y la prueba de xsl: if siempre falla. Estoy seguro de que esto se debe a un error desquiciado de mi parte, pero todavía no lo he reconocido. ¿Alguien sabe lo que he hecho mal?
¿Puede proporcionarnos un ejemplo de XML? –