Prüft, ob ein untergeordnetes XML-Element mit Linq to XML existiert

8

Ich versuche, ein Problem zu lösen, das ich in Linq zu XML habe, es scheint, als sollte es ziemlich einfach sein, aber selbst nachdem ich die Fragen von Linq zu XML gelesen habe, kann ich es nicht ganz verstehen.

Nehmen Sie etwas in der folgenden XML-Form:

%Vor%

Ich möchte jetzt überprüfen, ob der Benutzer mit der ID 2 eine Telefonnummer hat.

Könnte jemand eine Lösung vorschlagen, wie gesagt, scheint es so einfach zu sein ...

Prost, Ola

    
Ola Karlsson 28.07.2009, 08:46
quelle

3 Antworten

13

Hier ist ein Abfrageansatz:

%Vor%     
dahlbyk 28.07.2009, 21:45
quelle
3

Es gibt wahrscheinlich einen besseren und besseren Weg, dies zu tun (ich bin mit Linq-to-XML noch nicht sehr vertraut), aber dieses Code-Snippet sollte funktionieren:

%Vor%

Im Grunde listet es alle "user" -Knoten in Ihrem XML auf und dann alle "contactDetails" -Knoten innerhalb des Benutzerknotens und prüft dann, ob darunter "phone" -Unterknoten sind.

Der Aufruf .Descendants() gibt eine Liste von XElement-Knoten zurück, und wenn es keinen Typ gibt, nach dem Sie sich erkundigt haben, gibt .Count() auf dieser Liste (ein IEnumerable<T> ) 0 zurück - das ist mein Code sucht nach.

Marc

    
marc_s 28.07.2009 09:36
quelle
1

in Linq to xml können Sie diese schnelle Überprüfung vor dem Abrufen eines Wertes durchführen:

%Vor%

funktioniert nicht mit NULL-Daten in der Datenbank, da die Tags mit leeren Daten nicht erstellt werden

dafür müssten Sie die untergeordneten Elemente durchlaufen

    
M Worsfold 24.11.2010 13:55
quelle

Tags und Links