2011-11-10 31 views
3

我在我的C#生成XML,當我有例如幾個空標籤,的XElement被擴大的空標籤

new XElement("TransLogID", "") 

一些那些被渲染爲

<TransLogID></TransLogID> 

,而其中一些的獲取呈現爲

<TransLogID/> 

什麼控制着什麼時候標籤會被展開,什麼時候沒有?我如何強迫他們做我想要的行爲?

回答

6

我想你錯了。

Root.Add(new XElement("TransLogID1", "")); 
Root.Add(new XElement("TransLogID2")); 

會給

<TransLogID1></TransLogID1> 
<TransLogID2/> 

兩個元件將具有空的要素/節點的集合,該細微的區別在於TransLogID2將具有爲IsEmpty =真。

3

如果你的內容爲空字符串(new XElement("TransLogID", "")),其將呈現爲

<TransLogID></TransLogID> 

但如果是空(new XElement("TransLogID", null)),其將呈現爲

<TransLogID/> 

你確定'總是以相同的方式生成節點?