我有两个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>然而,Value属性和都等于string.Empty。
我可以想出很多方法来区分null和string.Empty在XElement中,但是在框架中有什么东西是我遗漏的吗?
发布于 2012-11-14 16:37:20
el1.IsEmpty将返回true,另一方面,el2.IsEmpty将返回false。
发布于 2012-11-14 16:40:05
来自XML模式标准
2.6.2 xsi:零 XML :Structure引入了一种机制,当元素没有内容时,它应该被接受为·有效值·,尽管内容类型不需要,甚至不一定允许空内容。如果一个元素的属性xsi:nil的值为true,则该元素可能是·有效值·不带内容。这样标记的元素必须为空,但如果相应的复杂类型允许,则可以携带属性。
因此,对于您来说,您必须将xsi命名空间添加到XmlDocument中。那么元素看起来就像
<xel xsi:nil="true" />https://stackoverflow.com/questions/13382963
复制相似问题