Xelement для расширенных пустых тегов

#c# #.net #xml #sharepoint #xelement

#c# #.net #xml #sharepoint #xelement

Вопрос:

Я генерирую XML в своем c #, например, когда у меня мало пустых тегов,

  new XElement("TransLogID", "")
  

некоторые из них отображаются как

 <TransLogID></TransLogID>
  

в то время как некоторые из них отображаются как

 <TransLogID/>
  

Что определяет, когда теги будут расширены, а когда нет? Как я могу заставить их вести себя так, как я хочу?

Ответ №1:

Я думаю, что они имеют разное происхождение.

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

даст

 <TransLogID1></TransLogID1>
<TransLogID2/>
  

Оба элемента будут иметь пустые коллекции элементов / узлов, тонкое различие заключается в том, что TransLogID2 будет иметь isEmpty= true .

Ответ №2:

Если ваш контент представляет собой пустую строку ( new XElement("TransLogID", "") ), он будет отображаться как

 <TransLogID></TransLogID>
  

Но если это значение равно null ( new XElement("TransLogID", null) ), оно будет отображаться как

 <TransLogID/>
  

Вы уверены, что всегда генерируете узлы одним и тем же способом?