我基於從數據庫中提取的一些數據構建XML,並且認爲要嘗試使用LINQ2XML構建XML。數據來自幾個不同的地方,所以我一直在根據我在DataTable對象中填充的內容來分段構建XML。有條件的XElement內容,XElement或XAttribute
使用XElements和XAttributes,我可以找到其中一個,但我想知道是否有人對如何確定是否在構建XML時使用XElement或XAttribute有所瞭解。
下面是從XML建築規範與XAttribute硬編碼(VB.NET)段:
...
New XElement("ParentNode",
New XElement("ChildNode",New XAttribute(XNamespace.Xmlns + "nil", "true"))
)
...
以下是我正在使用整個XML建設過程中如何建立子節點,其中的一個例子必要:
...
New XElement("ParentNode",
From db as DataRow in dtTable.Rows _
Order By db("Field") _
Select New XElement("ChildNode",
New XElement("ChildID",db("ValueToParse"))
)
)
...
因此,它是在LINQ查詢,我需要確定是否ValueToParse,例如,有一個有效值(非空)。如果是這樣,那麼我可以添加節點和它的價值。如果它不是,我需要添加該命名節點,但具有屬性'xsi:nil =「true」'
需要注意的是,有一些後代會在不同的父母身上重複(例如,包含AddressDetail元素的AddressDetails部分這些AddressDetail元素可以包含0個或1個聯繫人元素的聯繫人組,因此將節點添加到聯繫人節點並不是一個簡單的選項,因爲它只有一個聯繫人元素)。
我通常不使用LINQ,但它似乎是在當時XD一個好主意
謝謝, 克里斯