2010-01-30 62 views
3

如何在嘗試添加元素之前檢查給定元素中是否存在元素?將新的XElement添加到現有的XElement中(如果它尚不存在)

背景:我有一個XDocumentX包含作爲子元素Flowers隨後包含一系列各自命名Flower元件。每個Flower已經有2個子元素,我想添加名爲Price的第3個元素。但是,我想檢查並確保在Flower元素中沒有Price的元素。我怎麼做?我甚至需要檢查嗎?

回答

5

XElement有一個HasElements屬性,如果只是想知道是否存在任何元素,該屬性就可以工作。

對於你的情況,我會用...

XNamespace ns = "http://mynamespace.com"; 
bool hasPrice = flowerElement.Element(ns + "Price") == null; 

..to看有沒有價格因素存在。如果不是,則可以添加它。

注意:如果您沒有爲XML文件設置任何名稱空間,則可以使用Namespace.None而不是ns

+0

沒錯,但是每個'Flower'元素都有2個子元素。我試圖查看一個名爲'Price'的元素是否已經作爲子元素存在。我怎麼能做到這一點,而不會拋出異常? – 2010-01-30 03:54:33

+0

@Ben,我進一步編輯了我的答案。這不應該引發異常。 – devuxer 2010-01-30 03:57:34

+0

謝謝。代碼中代表什麼'ns'? – 2010-01-30 03:59:29

相關問題