如何使用xslt删除带有名称空间的xmlns属性,但不删除元素标记中的名称空间前缀

如何使用xslt删除带有名称空间的xmlns属性,但不删除元素标记中的名称空间前缀,xml,xslt,Xml,Xslt,我有一个这样的xml <article> <ce:jid xmlns:ce="http://www.elsevier.com">CQG</ce:jid> </article> 我只想删除xmln:namespace 预期产量为 <article> <ce:jid>CQG</ce:jid> </article> 如果这是您需要的整个输出XML文档,那么您无法使用XSLT实现它,因为输出的

我有一个这样的xml

<article>

  <ce:jid xmlns:ce="http://www.elsevier.com">CQG</ce:jid>

</article>
我只想删除xmln:namespace

预期产量为

<article>

<ce:jid>CQG</ce:jid>

</article>

如果这是您需要的整个输出XML文档,那么您无法使用XSLT实现它,因为输出的名称空间格式不正确-ce前缀必须在某个地方声明,要么在jid元素本身上,要么在其树上的某个祖先上


如果这是输出的一个片段,那么您需要确保ce前缀绑定出现在插入该片段的点上方的一个祖先上,XML序列化程序应该自动生成您想要的内容—如果名称空间已经在祖先的作用域中,则无需重新声明名称空间。

如果您想要有效的XML,则必须在根元素中声明名称空间ce。这可能会有所帮助,因为我也有类似的问题