2016-05-10 4 views
0

Ich weiß nicht, wie ich ein XML-Dokument durchlaufen muss, um einen Knotenwert zu finden, der zu einem Element mit einem bestimmten Wert in einem anderen Knoten gehört. Lassen Sie mich deutlicher erklären ...XDocument Knotenwert finden, wo anderer Knotenwert meiner Suche entspricht

Hier ist meine XML:

<Items> 
    <Item> 
     <Id>id 1</Id> 
     <Item>item 1</Item> 
     <LastModified>2016-01-01</LastModified> 
    </Item> 
    <Item> 
     <Id>id 2</Id> 
     <Item>item 2</Item> 
     <LastModified>2016-02-02</LastModified> 
    </Item> 
</Item> 

Ich möchte den Wert von <LastModified> finden, wo <Id> = id 2, so dass ich den folgenden Tag bekommen würde : 2016-02-02. Eine Lösung in C# mit XDocument würde am meisten geschätzt werden. Vielen Dank im Voraus!

Antwort

1

Sie müssen das Item Element finden, die Id mit Ihrem Wert enthält, und dann bekommen sein LastModified Element:

var lastModified = (DateTime) doc.Descendants("Item") 
    .Where(x => (string) x.Element("Id") == "id 2") 
    .Elements("LastModified") 
    .Single(); 

Siehe this fiddle für ein funktionierendes Beispiel.

+1

Vielen Dank! Sehr einfache Lösung, funktioniert perfekt! – w0ns88