【发布时间】:2012-11-14 16:30:52
【问题描述】:
我有两个 XElement 实例:
var el1 = new System.Xml.Linq.XElement("xel", null);
var el2 = new System.Xml.Linq.XElement("xel", string.Empty);
el1 看起来像这样:
<xel />
el2 看起来像这样:
<xel></xel>
然而,both 的Value 属性等于string.Empty。
我可以想出很多技巧来区分 XElement 中的 null 和 string.Empty,但是框架中是否有一些我缺少的东西可以做到这一点?
【问题讨论】:
-
表示 null 的方法是完全省略元素。存在的元素将使用非空值进行解析。
-
@AnthonyPegram 是可能的,除非有一个模式指定 xel 的 MinOccurs > 0。无论出于何种原因,这似乎在我的部门中经常发生。
-
根据 XML 标准,
<xel />和<xel></xel>必须等效。因此,要区分字符串的""和null,可以按照上面 Anthony 的建议,或者在元素内使用属性,例如<xel isNull="True" />。
标签: c# .net linq-to-xml xelement