使用xsl:copy-of时,xsl:namespace-alias无法正常工作

问题描述

我有一个要求,我必须从请求有效载荷中删除肥皂信封,并将父标记的命名空间从命名空间"random.com/system/i/Modify/1.0"更改为"http://random.com/G/Modify",将请求标头从命名空间"http://random.com/2/MsgHeader/"更改为{ {1}}并向"http://random.com/3/MsgHeader/"请求正文命名空间"http://random.com/2/MsgBody/"

我不确定"http://random.com/3/MsgBody/"为什么不能正确更改命名空间

转换文件

xsl:namespace-alias

解决方法

您在这里问了同样的问题:https://saxonica.plan.io/issues/4817

这是我的答案:

如果您阅读了xsl:namespace-alias的规范,您将看到它仅影响文字结果元素。 如果要复制更改名称空间的元素,请使用模板规则,例如

<xsl:template match=xyz:"*">
  <xsl:element name="{local-name()}" namespace="http://new-namespace/">
     <xsl:apply-templates select="@*,node()"/>
  </xsl:element>
</xsl:template>

请不要在几个不同的论坛上问相同的问题,以免给人们带来额外的负担。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...