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

时间:2014-09-09 08:37:28

标签: xml xslt

我有一个像这样的xml,

<article>

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

</article>

我想只删除xmln:名称空间,

和预期的输出是;

<article>

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

</article>

1 个答案:

答案 0 :(得分:0)

如果这是您需要的整个输出XML文档,那么您无法使用XSLT实现它,因为输出不是命名空间良好的形式 - ce前缀必须在某处声明 ,或者在jid元素本身上,或者在树上的一个祖先上。

如果这是输出的片段,那么您需要确保ce前缀绑定出现在插入此片段的点之上的一个祖先上,以及XML序列化器应该自动生成你想要的东西(如果它已经在祖先的范围内,它不需要重新声明命名空间)。