[英]Differentiate null and string.Empty values in an XElement
我有兩個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
。
我可以想到很多hacks來區分null
和XElement
string.Empty
,但是框架內置了一些我缺少的東西嗎?
el1.IsEmpty
將返回true,另一方面, el2.IsEmpty
將返回false。
從XML Schema標准 :
2.6.2 xsi:nil
XML Schema:Structures引入了一種機制,用於表示一個元素應該被接受為有效·當它沒有內容時,盡管內容類型不需要或甚至不允許空內容。 如果元素具有值為true的屬性xsi:nil,則元素可以是有效的而沒有內容。 如此標記的元素必須為空,但如果相應的復雜類型允許,則可以攜帶屬性。
因此,對於您來說,您必須將xsi名稱空間添加到XmlDocument中。 然后元素看起來像
<xel xsi:nil="true" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.