If you are looking for XPath and Linq to Xml:
var xdoc = XDocument.Load(path_to_xml);
var data = xdoc.XPathSelectElement("//Train[@number='1']/trainData");
^
You are missing closing bracket in your XPath query. That query will give you trainData XElement if there is any train matching your number in xml. Further parsing is simple:
if (data != null)
{
int entryId = (int)data.Element("entry").Attribute("id");
var stations = data.Element("stations")
.Elements("station")
.Select(s => new {
Name = (string)s.Attribute("name"),
Id = (string)s.Attribute("id"),
Arrival = (string)s.Attribute("arr"),
Departure = (string)s.Attribute("dep")
}).ToList();
}
You can also use pure Linq query without XPath. Following query will return first matching anonymous train object (if any) with its number, entry id and stations:
int number = 1; // number of train to find
var train = (from t in xdoc.Root.Elements("Train")
let d = t.Element("trainData")
where (int)t.Attribute("number") == number
select new {
Number = number,
EntryId = (int)d.Element("entry").Attribute("id"),
Stations = (from s in d.Element("stations").Elements("station")
select new {
Name = (string)s.Attribute("name"),
Id = (string)s.Attribute("id"),
Arrival = (string)s.Attribute("arr"),
Departure = (string)s.Attribute("dep")
}).ToList()
}).FirstOrDefault();
NOTE - thus your sample xml is not valid (see comment under question) I assumed you have following structure of xml:
<TrainTime>
<Train number="1">
<trainData>
<entry id="111"/>
<stations>
<station name="s1" id="s_s1" dep="11:10:00" arr=""/>
<station name="s2" id="s_s2" dep="" arr=""/>
<station name="s3" id="s_s3" dep="" arr=""/>
</stations>
</trainData>
</Train>
<Train number="5">
<trainData>
<entry id="222"/>
<stations>
<station name="t1" id="s_t1" dep="" arr=""/>
<station name="t2" id="s_t2" dep="" arr=""/>
<station name="t3" id="s_t3" dep="" arr=""/>
</stations>
</trainData>
</Train>
</TrainTime>
If some names do not match, update query appropriately.
stationelements not closed here. Alsostationsis not closed. Also start tagTraindoes not match end tagtrain. Too many errors. Please, post valid xml