Ich gehe davon aus, dass ich etwas Einfaches übersehen habe, aber ich habe Schwierigkeiten, rekursiv Knoten aus einem XDocument zu extrahieren.
Ich habe XML ähnlich wie folgt:
%Vor%Ich dachte, ich könnte alle drei Beobachtungsknoten mit
erhalten %Vor%Obwohl es so aussieht, funktioniert das nur, wenn die Beobachtung keine Kinder hat. Ich habe auch versucht .Ancestors und .DecentantNodes, aber habe nicht bekommen, was ich wollte.
Ich kann leicht eine rekursive Methode schreiben, die mir bringt, was ich brauche, aber ich würde lieber eine existierende Methode benutzen, wenn es eine gibt, zumal ich mit XML ziemlich viel in verschiedenen Projekten arbeiten werde. Fehle ich etwas Offensichtliches?
Beachten Sie, dass jeder Knoten, der eine Beobachtung angibt, den Code und den Wert abrufen muss. Im folgenden Beispiel muss ich also drei Beobachtungsknoten verarbeiten. Die Verschachtelung und Anzahl der Beobachtungsknoten ist beliebig.
Danke für jede Hilfe.
ANHANG
Es kommt mir vor, dass ich nicht genügend Informationen über XML gebe. Ich glaube nicht, dass Tags einen Unterschied machen würden, aber ich nehme an, ich sollte sie für alle Fälle mit einbeziehen. Unten sind die ersten paar Zeilen einer tatsächlichen Nachricht, die ich analysieren möchte. Ich habe etwas Text mit "..." für die Privatsphäre ersetzt.
%Vor% Ich habe gerade diesen Code in VS2012 ausgeführt, und er hat die Console.WriteLine()
3 Mal getroffen und den Beobachtungsknoten und den Inhalt korrekt ausgegeben:
Bearbeiten - berücksichtigt die neuen Namespace-Informationen und verwendet XDocument
anstelle von XElement
:
Tags und Links c# xml linq-to-xml