創建一個子目錄我有一個非常簡單的模板匹配在我的XSLT代碼創建一個ditamap,它的工作原理是剛創建時相匹配的原始文檔的「科」一化的topicref。方式來避免的topicref
初始XML代碼片段看起來像:
<Section Target="IL27TRM409TueAug251754042009251">
<Heading Target="v5170372">WBG (S-GW/P-GW) chassis </Heading>
爲部分中的XSLT模板匹配看起來像:
<xsl:template match="Section>
<xsl:variable name="file" select="Heading"/>
<xsl:variable name="fileName" select="translate(normalize-space($file),' ','_')"/>
<topicref format="dita" href="{translate(./$fileName,' ','_')}.xml" navtitle="{./Heading}">
<xsl:apply-templates/>
</topicref>
代碼工作,除了對於像上述的「WBG的標題(S -GW/P-GW)底盤」,它將使用 「/」 作爲一個子文件夾,所以它會創建一個名爲subforlder 「WBG(S-GW」,則創建一個文件 「P-GW)_chassis.xml」 。
有沒有一種方法,使XSLT忽略「/」標題中,只是把它當作一個字符串創建只需使用該字符串的XML文件?
XSLT不會創建subforlders,它只是採取任何數量的XML樹作爲輸入和輸出一個(或多個在XSLT 2.0),XML樹作爲輸出。它可能或可能不負責序列化。在這裏,你的輸出的消費者明白你的'@ href'指的是一個子文件夾。 **爲什麼不只是替換'/'字符爲其他有效的URI?** – 2011-04-18 16:10:49