在解析WSDL时,我遇到了许多wsdl:import
和xsd: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>
答案 0 :(得分:1)
你的基本想法似乎很好。您只需要在应用模板时传递file-list
参数,所以:
<xsl:with-param name="file-list" value="$file-list"/>
中添加xsl:apply-templates
以实际传递参数,<xsl:param name="file-list"/>
以在那里引入参数。