2014-09-18 44 views
0

我正在使用一個xsl文件處理多個xml文件,即使它們具有相同的結構,也需要對一些文件進行不同的處理。由於文件數量很大,需要處理不同的部分只是幾個節點,其餘部分是相同的,所以我想保留一個xsl樣式表。我設置了一個外部參數,它告訴正在處理什麼類型的文件;有了這些信息,我如何在不同的文件上對同一個節點做不同的<template match.../>取決於變量值的XSLT模板匹配

編輯:我想到這樣的事情,我知道這是不可能有內部模板匹配如果

<xsl:param name="type" /> <!-- this is set externally --> 
    <xsl:if test="$type = 'XYZ'"> 
     <xsl:template match="a/b"> 
     .... 
    </xsl:if> 

    <xsl:if test="$type = 'MNO'"> 
     <xsl:template match="a/b"> 
     .... 
    </xsl:if> 
+1

@JohnLBevan我」 m使用撒克遜分析器,我可以設置外部參數值 – Rnet 2014-09-18 18:01:10

+1

@JohnLBevan這只是錯誤的。您可以隨時提供外部參數並打開其他XML文檔。 – 2014-09-18 18:12:48

回答

2

你當然可以寫

<xsl:param name="type" /> 

<xsl:template match="a/b[$type = 'XYZ']">...</xsl:template> 

<xsl:template match="a/b[$type = 'MNO']">...</xsl:template> 
+0

精美的作品!認爲只有當我有一個屬性值測試,我才能'與';謝謝! – Rnet 2014-09-18 18:11:27