Main /

Linq To Xml Schnipsel

Linq To Xml Schnipsel

LINQ to XML Schnipsel

LINQ (Language INtegrated Query) ist ein neues Feature von .NET 3.5 und eine verdammt feine Sache, wenn man damit umgehen kann. winking smiley Hier ein paar Praxisbeispiele für LINQ to XML, also die datenbankähnliche Abfrage von XML-Dokumenten:

Herauslesen einzelner Werte aus einem namespacebehafteten XML-Dokument

Gegeben sei folgendes XML:

<Results xmlns="http://schemas.microsoft.com/sharepoint/soap/">
    <Result ID="1,Update">
        <ErrorCode>0x80020005</ErrorCode>
        <ErrorText>The operation failed because an unexpected error occurred. (Result Code: 0x80020005)</ErrorText>
    </Result>
</Results>

Besonderheit: Das XML-Dokument hat einen Namespace, der im LINQ-Code berücksichtigt werden muss. Es genügt also nicht den Descendants("ErrorCode") zu schreiben, sondern es muss ein XName-Objekt erzeugt werden das ebenfalls den Namespace berücksichtigt. Das geht u.a. mit der Factory-Methode XName.Get("{Namespace}|ElementName").

Das XML befindet sich in einem XDocument-Objekt namens xdoc.

Herauslesen des ErrorCode:

string errorCode = ( from x
                     in xdoc.Descendants(XName.Get("{http://schemas.microsoft.com/sharepoint/soap/}ErrorCode"))
                     select x.Value
                   ).First();

Ergebnis: 0x80020005

Frische Änderungen | Menü editieren
zuletzt geändert am 12.08.2009 16:41 Uhr von Elsni
Edit Page | Page History