Main /

Linq To Xml Schnipsel

Allgemein

Knowledge Base

Virtualisierung Emulation

Technik und Wissen

Community

Privat

%center%[[http://validator.w3.org/check?uri=referer|http://www.w3.org/Icons/valid-xhtml10.png]]%%

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 (All) | Edit SideBar Zuletzt geändert am 12.08.2009 16:41 Uhr Seite Bearbeiten | Seitenhistorie
Powered by PmWiki