2012-06-11 80 views
0

是否有任何方式使用xslt在xml的子節點中定義(帶有前綴的名稱空間)。所以我的名字空間也適用於它的後代,我也使用在xslt中的子節點中定義帶前綴的名稱空間

<xsl:element name="abc" namespace="{$prmPafNamespace}"> 

但它創建默認命名空間。

當我使用它像下面

<xsl:element name="paf:abc" namespace="{$prmPafNamespace}"> 
    <xsl:element name="paf:child_abc"/> 
</xsl:element> 

那麼它給出錯誤「PAF」沒有定義,如何解決這個問題?

回答

1

您需要在每個元素上定義名稱空間,例如

<xsl:element name="paf:abc" namespace="{$prmPafNamespace}"> 
    <xsl:element name="paf:child_abc" namespace="{$prmPafNamespace}"/> 
</xsl:element> 
+0

感謝馬丁,因爲我有一個很長的XML它的工作原理,但沒有任何替代方案,並使用相同的命名空間爲每個子節點看起來很奇怪... – Hussey

+0

我不知道任何更短的替代方案,如果您想讓命名空間爲動態,那麼您必須在動態創建的每個元素上指定它。 –

0

你可以嘗試添加xmlns:paf="{$prmPafNamespace}"屬性您文檔/元素,但我不確定它是否可以使用動態名稱空間URI。

+0

我已經使用它,它不會工作動態URI – Hussey

相關問題