で複数の要素を選択したファイル(バージョンダウンカット):私は、次のXMLを持つXML
<Service z:Id="i1" xmlns="http://schemas.datacontract.org/2004/07/BusExpress.ClassLibrary" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/">
<routes>
<Route z:Id="i4">
<timetables>
<Timetable z:Id="i8">
<timetableId>11061</timetableId>
</Timetable>
<Timetable z:Id="i8">
<timetableId>11062</timetableId>
</Timetable>
</timetables>
</Route>
</routes>
</Service>
を、私は最初のIDを取得することができる午前:11061を、私は本当では、第2の1を取得したいですファイルには他にもいくつかあります。しかし、私はそれを取得します私は2つを得ることができ、一度仮定より2
XDocument doc = XDocument.Load("timetableTest.xml");
XNamespace ns = "http://schemas.datacontract.org/2004/07/BusExpress.ClassLibrary";
var routeNames = (from n in doc.Descendants(ns + "Service").Descendants(ns + "routes").Descendants(ns + "Route")//.Descendants(ns + "timetables")//.Descendants(ns + "Service")
select new RootContainer
{
Services = (from s in n.Elements(ns + "timetables")//.Elements(ns + "clients")
// where n.Elements(ns + "Service") != null
select new Services
{
ServiceName = s.Element(ns + "Timetable").Element(ns + "timetableId").Value,
//serviceIconUrl = "/Assets/Services/" + s.Element(ns + "serviceName").Value + ".png",
// ServiceId = s.Element(ns + "serviceId").Value
}).ToList()
}).Single();
listServices.ItemsSource = routeNames.Services;
私は、複数の時刻表のIdsを得るために変更する必要がありますか?
アップデート:同じ方法を2つのルートでどうやって行うのですか?ちょうど元のXMLフィードを見直しました。
<Service z:Id="i1" xmlns="http://schemas.datacontract.org/2004/07/BusExpress.ClassLibrary" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/">
<routes>
<Route z:Id="i4">
<timetables>
<Timetable z:Id="i8">
<timetableId>11061</timetableId>
</Timetable>
<Timetable z:Id="i8">
<timetableId>11062</timetableId>
</Timetable>
</timetables>
</Route>
<Route z:Id="i4">
<timetables>
<Timetable z:Id="i8">
<timetableId>11061</timetableId>
</Timetable>
<Timetable z:Id="i8">
<timetableId>11062</timetableId>
</Timetable>
</timetables>
</Route>
</routes>
</Service>
あなたの選択の最後に非常に不審な '.Single()'があることがわかります。 また、https://msdn.microsoft.com/en-us/library/system.xml.xmldocument.selectnodes(v=vs.110).aspx は、このネストされたLINQよりもかなり簡単です。 –