在scala repl中:
val input = <outerTag xmlns="http://xyz"> <innerTag> </innerTag> </outerTag>
input\\@"innerTag"
= >
<innerTag xmlns="http://xyz"> </innerTag>
我该怎么阻止斯卡拉这么做?为什么它不能给我
<innerTag> </innerTag>
?如何阻止这种情况发生(或者简单地删除xmlns
属性)?谢谢!
乔
澄清:
我的总体任务是切碎一个XML文件并重新组合它。因此,这个节点将从根节点(具有xmlns属性)的下面获取,然后集成回根节点(再次具有xmlns属性)下的文档中。
最佳答案
在输入文档中,<innerTag>
具有逻辑名称空间"http://xyz"
,因为其父元素<outerTag>
具有该名称空间。这就是XML名称空间的工作方式。
当您单独请求<innerTag>
元素时,scala会从父<outerTag>
复制名称空间声明,因为名称空间是<innerTag>
的逻辑部分,即使在初始文档中没有显式声明。
如果要删除命名空间,则必须执行一些额外的处理。