2016-02-23 92 views
0

我的問題與此question類似。除了我希望有一個樣式表呈現(XML到PDF)包含或不包含名稱空間的XML。使用名稱空間呈現XML的XSLT而不是

因爲我的一些外部系統生成沒有命名空間的XML,而有些命名空間生成XML,並且兩者都具有相似的結構。是否可以容納一個樣式表來迎合這兩種XML?如果可能如何?

感謝您的回答。

+0

如果您展示了XML輸入文檔,XSLT樣式表和您期望的輸出的具體示例,那麼這個問題會更容易回答。幫助:http://stackoverflow.com/help/mcve。 –

+0

抱歉,我不想添加示例,因爲鏈接中的其他問題已足夠清晰並且有示例。我的問題是對此的擴展。 – ulab

+0

不,這個問題不包含您的問題的例子,在我看來。如果您展示具體的例子,您也將從答案中獲益更多,因爲那樣答案可以更具體。正如你所看到的,Martin Honnen的回答現在相當普遍。 –

回答

1

在XSLT 2.0中,可以使用星號作爲名稱空間的通配符,例如<xsl:template match="*:foo">分別爲<xsl:value-of select="*:bar"/>。在XSLT 1.0中,您可以使用聯合操作符與例如<xsl:template match="foo | df:foo"><xsl:value-of select="bar | df:bar"/>,只要一個輸入包含命名空間或非命名空間的元素,它就可以工作。

作爲替代方案,你可以寫一個轉換步驟,做了預處理以添加您所期望的命名空間或剝離,然後用第二變換步驟,以標準化的XML轉換爲PDF。

+0

感謝您的建議。我會盡力回來。 – ulab

+0

它已成爲繁瑣和樣式表是臃腫,所以最後不得不另一種轉換步驟渲染之前刪除的命名空間。 – ulab

相關問題