将参数传递给解析导入的文件

时间:2013-03-16 19:44:43

标签: xslt import apply-templates

在解析WSDL时,我遇到了许多wsdl:importxsd:import个元素。我想解析导入并将@location@schemaLocation传递给解析器。

目的是在导入的文件导入文件(例如filea.wsdl;filez.xsd;filev.xsd)时使文件列表增长。这样我就可以删除以前导入的文件。

我会沿着这些方向思考:

<xsl:param name="file-list"/>

<xsl:template match="/">
    <xsl:param name="file-list"/>
    <xsl:apply-templates />
</xsl:template>

<xsl:template match="wsdl:import">
    <xsl:apply-templates select="document(@location)">
        <xsl:with-param name="file-list" select="concat($file-list, ';', @location)`"/>
    </xsl:apply-templates>
</xsl:template>

1 个答案:

答案 0 :(得分:1)

你的基本想法似乎很好。您只需要在应用模板时传递file-list参数,所以:

  1. 在第一个模板的<xsl:with-param name="file-list" value="$file-list"/>中添加xsl:apply-templates以实际传递参数,
  2. 在第二个模板中添加<xsl:param name="file-list"/>以在那里引入参数。