2017-10-13 60 views
0

我在C#中使用了XDocument如何檢索沒有相應屬性名稱的XML屬性的值?

我有下面的XML數據,從中我想提取的ID(c5946,cdb9fb等):

<rootElement> 
    <IDs> 
     <ID value="c5946"/> 
     <ID value="cdb9fb"/> 
     <ID value="c677f5"/> 
     <ID value="ccc78b"/> 
    </IDs> 
</rootElement> 

我嘗試不同的東西,等等,這樣的:

XDocument xDoc = XDocument.Load(filename); 
var Ids = xDoc.Root.Element("IDs").Elements("ID").Attributes("value"); 

但這返回:

value="c5946", value="cdb9fb", etc. 

,而不是

c5946, cdb9fb, etc. 

如何獲取不帶相應屬性名稱的屬性值?

回答

2

使用屬性

var allId = document.Descendants("ID").Select(id => id.Attribute("value").Value); 

.Value屬性或特性不是當你可以投XAttributestring

var allId = document.Descendants("ID").Select(id => (string)id.Attribute("value")); 

鑄件會更簡單的辦法的情況下,存在的元素。

var allId = document.Descendants("ID").Select(id => (string)id.Attribute("value") ?? "");