Ich habe ein XML
%Vor%Mit Linq und XDocument kann ich "Zusammenfassung" Informationen extrahieren, aber wie kann ich "Konto" Informationen unter "Zusammenfassung" extrahieren?
%Vor% Wie kann ich etwas wie " summary/account
" angeben, damit es mir alle Elemente unter <summary>
zurückgibt? Beachten Sie, dass ich <account>
unter <detail><accounts>
habe, ich möchte nur die Elemente unter dem Summary-Tag.
Bearbeiten: (Lösung von Andrew)
%Vor% Sie sollten die Methode Elements
verwenden:
Oder alternativ XPathSelectElements
, was in diesem Fall einfacher ist:
In diesem Fall können Sie auch Descendants
verwenden, wie Andrew Barber vorgeschlagen hat, aber im Allgemeinen sollten Sie dies nur tun, wenn Sie wirklich alle Nachkommen mit einem bestimmten Namen und nicht nur die unmittelbaren Kinder suchen wollen. Andernfalls führt Ihr Code viele Suchen durch, die er nicht benötigt, und kann Elemente zurückgeben, die er nicht haben soll.
Damit erhalten Sie eine Sammlung der Elemente account
unter dem Element summary
. Sie können sie dann iterieren, um die Werte zu erhalten.
BEARBEITET, das gleiche Muster wie Sie zu verwenden; Ich rufe First()
anstelle von FirstOrDefault()
auf, da dieser Code sowieso nicht ausgeführt wird, wenn das Element "account" nicht gefunden wird.
Dann haben Sie die richtige Idee, wenn Sie über die zurückgegebene Sammlung iterieren.
Tags und Links .net c# xml linq-to-xml