2012-06-11 113 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

相关问题