2010-07-24 45 views
3

存在,這是我的xml文件校驗值在LINQ

<Persons> 
    <Person> 
    <id>1</id> 
    <Name>Ingrid</Name> 
    </Person> 
    <Person> 
    <id>2</id> 
    <Name>Ella</Name> 
    </Person> 
</Persons> 

我使用LINQ XML。

這裏的ID應該是自動生成的..

我需要檢查,如果節點ID值已經存在。

如果不存在,它應該創建一個新的id ..如何使用linq來做到這一點。 任何指針?

謝謝

回答

5
XDocument doc = XDocument.Parse(xml); 

    int id = 1; 
    // if you need the element 
    XElement ingrid = (from person in doc.Root.Elements("Person") 
         where (int)person.Element("id") == id 
         select person).FirstOrDefault(); 
    // if you just need to know if it is there 
    bool exists = (from person in doc.Root.Elements("Person") 
         where (int)person.Element("id") == id 
         select person).Any(); 
    // generate a new ID 
    int newId = ((from person in doc.Root.Elements("Person") 
        select (int?)person.Element("id")).Max() ?? 0) + 1;