如何从org.w3c.dom.Document中删除特定的xml属性

时间:2014-07-11 13:49:22

标签: java xml dom

我有这个XML:

<Body xmlns:wsu="http://mynamespace">           
 <Ticket xmlns="http://othernamespace">
  <Customer xlmns="">Robert</Customer>
  <Products xmlns="">
   <Product>a product</>
  </Products>               
 </Ticket>
 <Delivered xmlns="" />
 <Payment xlmns="">cash</Payment>
</Body>

我使用Java将其作为DOM文档读取。我想删除空名称空间属性(即xmlns="")。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:2)

您需要了解xmlns非常特殊的属性。基本上,xmlns=""Customer元素在&#34;未命名&#34;命名空间,而不是http://othernamespace命名空间(对于其他元素,也可以从其祖先继承默认命名空间)。

如果你想摆脱xmlns="",你基本上需要将元素放入适当的命名空间 - 所以它改变了元素名称。我不认为 W3C API允许您更改元素的名称 - 您可能需要创建具有相应命名空间名称的新元素,并复制内容。或者,如果您负责创建文档,请使用正确的命名空间。