在XSLT中注入命名空间

问题描述 投票:0回答:1

是否可以在XSLT文档中注入一个命名空间,以便(例如)使用字符串的值来指定一个命名空间?我知道,同样可以使用XSLT文档中的 <xsl:attribute/><xsl:element/> 构造,分别。有没有类似的命名空间的构造?我问这个问题的原因是,我想构造一个XSLT转换,用于构造一个跨多个厂商使用的XML请求,该请求接受相同的XML结构(除了他们应用不同的命名空间).我使用Saxon XSLT处理器。

java xml xslt saxon
1个回答
1
投票

在XSLT 2及以后的版本中,有 xsl:namespace (https:/www.w3.orgTRxslt-30#creating-namespace-nodes)当然,我不确定,但是它将有助于处理来自不同命名空间的输入,如 xsl:element,它会创建结果节点。不要忘记,这两个 xsl:elementxsl:attribute 允许你在不同的命名空间中使用 namespace 属性。

*:foofoo 在任何命名空间的元素。


2
投票

在XSLT 2.0中,通过使用 xsl:namespace.

如果你真的需要在XSLT 1.0中这样做(为什么呢?

<xsl:variable name="temp">
  <xsl:element name="{$prefix}:dummy" namespace="{$uri}"/>
</xsl:variable>
<xsl:copy-of select="exsl:node-set($temp//*/namespace::*)"/>
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.