Xelement扩展空标签

soc*_*rix 3 .net c# xml sharepoint xelement

我在c#中生成XML,例如,当我有很少的空标签时,

 new XElement("TransLogID", "")
Run Code Online (Sandbox Code Playgroud)

其中一些被渲染为

<TransLogID></TransLogID>
Run Code Online (Sandbox Code Playgroud)

而其中一些被渲染为

<TransLogID/>
Run Code Online (Sandbox Code Playgroud)

什么控制何时扩展标签?我如何强迫他们采取我想要的行为?

Ste*_*ner 6

如果您的内容是空字符串 ( new XElement("TransLogID", "")),它将呈现为

<TransLogID></TransLogID>
Run Code Online (Sandbox Code Playgroud)

但如果它为 null ( new XElement("TransLogID", null)),它将呈现为

<TransLogID/>
Run Code Online (Sandbox Code Playgroud)

您确定始终以相同的方式生成节点吗?


Hen*_*man 6

我觉得你错了.

Root.Add(new XElement("TransLogID1", ""));
Root.Add(new XElement("TransLogID2"));
Run Code Online (Sandbox Code Playgroud)

会给

<TransLogID1></TransLogID1>
<TransLogID2/>
Run Code Online (Sandbox Code Playgroud)

两个元素都将具有空元素/节点集合,细微差别在于TransLogID2将具有IsEmpty = true.