【发布时间】:2012-08-15 20:10:51
【问题描述】:
这是我的代码:
XElement itemsElement = new XElement("Items", string.Empty);
//some code
parentElement.Add(itemsElement);
之后我得到了这个:
<Items xmlns=""></Items>
父元素没有任何命名空间。我该怎么做才能获得没有空命名空间属性的Items 元素?
【问题讨论】:
-
没有显式命名空间的父级可能意味着它从祖先那里继承。祖先链中的任何元素是否公开了命名空间?
-
是的。一些父母有命名空间。但是 Items 的直接父级没有。更重要的是。 Items 的每个元素都没有命名空间。
-
如果您正在寻找
,那么您可以尝试在 XElement 构造函数中删除 string.Empty。 -
@ogrod,那么您应该设置与最近的祖先元素中定义的名称空间相同的名称空间,即如果您有
<ancestor xmlns="urn:foo"><!-- other elements... --><item></item><!-- other elements... --></ancestor>,那么您应该将xmlns="urn:foo"应用于<item>元素好吧。 -
如果元素与父元素有相同的默认命名空间,那么它不应该有
xmlns属性。您是否尝试手动设置该属性而不是使用XNamespace?你能发布定义了命名空间的祖先元素的标记吗?
标签: c# .net xml linq-to-xml