1
我在隱藏沒有數據的XElements時遇到問題。隱藏沒有數據的XElement節點
如果我有這樣的代碼:
string missing = string.Empty;
XElement missingNodes = new XElement("TOPLEVEL",
new XElement("FIELD1", "VALUE1"),
new XElement("FIELD2", missing),
new XElement("FIELD3", "VALUE3")
);
我最終建立這種架構:
<TOPLEVEL>
<FIELD1>VALUE1</FIELD1>
<FIELD2></FIELD2>
<FIELD3>VALUE3</FIELD3>
</TOPLEVEL>
如果我改變缺少有空代替的String.Empty,第二場變爲:
<FIELD2 />
有沒有簡單的方法來隱藏節點與空/空數據?
我想它看起來更像是這樣的:
<TOPLEVEL>
<FIELD1>VALUE1</FIELD1>
<FIELD3>VALUE3</FIELD3>
</TOPLEVEL>
編輯:
繼@sine和@ gunr2171的建議,我下樓的路不添加空/空節點。
因爲我想保持嵌套的新格式(沒有很多如果/然後分支)的一切,我嘗試使用空三檢查。有趣的是,如果您傳遞null作爲任何內容,則XElement不會留下任何工件。
所以這並獲得成功:
string missing = null;
XElement missingNodes = new XElement("TOPLEVEL",
new XElement("FIELD1", "VALUE1"),
(missing != null) ? new XElement("FIELD2", missing) : null,
new XElement("FIELD3", "VALUE3")
);
我認爲要做到這一點的唯一方法,不加入任何XElements與空值... – makim 2013-03-06 15:22:56
是啊,要麼不添加節點或將空值應產生相同的結果。我不想添加節點,因爲我沒有花時間調用方法。請記住,您也可以使用'XElement.Add'來添加子元素而不是構造函數。 – gunr2171 2013-03-06 15:49:26