Xelement для расширенных пустых тегов - PullRequest
3 голосов
/ 10 ноября 2011

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

 new XElement("TransLogID", "")

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

<TransLogID></TransLogID>

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

<TransLogID/>

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

Ответы [ 2 ]

6 голосов
/ 10 ноября 2011

Я думаю, что вы ошибаетесь.

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

даст

<TransLogID1></TransLogID1>
<TransLogID2/>

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

3 голосов
/ 10 ноября 2011

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

<TransLogID></TransLogID>

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

<TransLogID/>

Вы уверены, что всегда генерируете узлы одинаково?

...