为什么在节点的属性中添加xmlns =“”?

时间:2013-05-21 07:34:02

标签: c# xml linq-to-xml

我正在使用C#和XDcoument添加节点根元素。我使用这段代码:

XElement miAnimalNuevo = new XElement("PrincipalNode",
                new XAttribute("Atribute1", "value attribute 1"),
                new XAttribute("Attribute2", "value attribute 2"),
                new XElement("subNode","0000"));

但我明白了:

<PrincipalNode Atribute1="value attribute 1" Attribute2="value attribute 2" xmlns="">
    <subNode>0000</subNode>
  </PrincipalNode>

在属性2之后,我看到xmlns =“”。为什么?我只想要属性。

感谢。

1 个答案:

答案 0 :(得分:3)

如果您的XML文档在树的某处定义了名称空间,则会发生这种情况。

添加一个不在该命名空间但在空命名空间中的元素(即 no namespace )将添加一个空的xmlns属性。

<xml xmlns="some_namespace_uri">
  <foo>The foo element inherits the 'some_namespace_uri' namespace</foo>
  <bar xmlns="">The bar element is in no namespace</bar>
</xml>

相关:Is xmlns="" a valid xml namespace?