Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel werden LINQ to XML mit den folgenden XML-Technologien verglichen: XmlReaderXSLT, MSXML und XmlLite. Anhand dieser Informationen können Sie entscheiden, welche Technologien verwendet werden sollen.
Einen Vergleich von LINQ to XML mit dem Dom (Document Object Model) finden Sie unter LINQ to XML vs. DOM.
LINQ to XML vs. XmlReader
XmlReader ist ein Parser, der nur vorwärts arbeitet, nicht zwischenspeichert und schnell ist.
LINQ to XML wird auf XmlReader implementiert, und sie sind eng miteinander integriert. Sie können jedoch auch direkt verwenden XmlReader .
Angenommen, Sie erstellen einen Webdienst, der Hunderte von XML-Dokumenten pro Sekunde analysiert, und die Dokumente haben dieselbe Struktur, was bedeutet, dass Sie nur eine Implementierung des Codes schreiben müssen, um den XML-Code zu analysieren. In diesem Fall sollten Sie wahrscheinlich direkt verwenden XmlReader .
Im Gegensatz dazu sollten Sie, wenn Sie ein System erstellen, das viele kleinere XML-Dokumente analysiert und jedes anders ist, die Produktivitätsverbesserungen nutzen, die LINQ to XML bietet.
LINQ to XML vs. XSLT
Sowohl LINQ to XML als auch XSLT bieten umfangreiche XML-Dokumenttransformationsfunktionen. XSLT ist ein regelbasierter, deklarativer Ansatz. Erweiterte XSLT-Programmierer schreiben XSLT in einem funktionalen Programmierstil, der einen zustandslosen Ansatz betont. Transformationen können mit reinen Funktionen geschrieben werden, die ohne Nebenwirkungen implementiert werden. Dieser regelbasierte oder funktionale Ansatz ist vielen Entwicklern nicht vertraut und kann schwierig und zeitaufwändig sein, um zu lernen.
XSLT kann ein produktives System sein, das Hochleistungsanwendungen liefert. Beispielsweise verwenden einige große Webunternehmen XSLT als Möglichkeit, HTML aus XML zu generieren, die aus verschiedenen Arten von Datenspeichern abgerufen wurde. Das verwaltete XSLT-Modul kompiliert XSLT in CLR-Code (Common Language Runtime) und führt in einigen Szenarien noch besser aus als das systemeigene XSLT-Modul.
XSLT nutzt jedoch nicht die Kenntnisse von C# und Visual Basic, die viele Entwickler haben. Entwickler müssen Code in einer anderen und komplexen Programmiersprache schreiben. Die Verwendung von zwei nicht integrierten Entwicklungssystemen wie C# (oder Visual Basic) und XSLT führt zu Softwaresystemen, die schwieriger zu entwickeln und zu warten sind.
Nachdem Sie sich mit LINQ to XML-Abfrageausdrücken vertraut gemacht haben, sind LINQ to XML-Transformationen eine leistungsstarke Technologie, die einfach zu nutzen ist. Im Grunde bilden Sie Ihr XML-Dokument mithilfe der funktionalen Konstruktion, ziehen Daten aus verschiedenen Quellen, erstellen XElement Objekte dynamisch und zusammenstellen das Ganze in einer neuen XML-Struktur. Die Transformation kann ein völlig neues Dokument generieren. Das Erstellen von Transformationen in LINQ to XML ist relativ einfach und intuitiv, und der resultierende Code ist lesbar. Dies reduziert die Entwicklungs- und Wartungskosten.
LINQ to XML ist nicht zum Ersetzen von XSLT gedacht. XSLT ist immer noch das Tool der Wahl für komplizierte und dokumentorientierte XML-Transformationen, insbesondere, wenn die Struktur des Dokuments nicht gut definiert ist.
XSLT hat den Vorteil, ein World Wide Web Consortium (W3C)-Standard zu sein. Wenn Sie eine Anforderung haben, dass Sie nur Technologien verwenden, die Standards sind, ist XSLT möglicherweise besser geeignet.
XSLT ist XML und deshalb kann sie programmgesteuert bearbeitet werden.
LINQ to XML vs. MSXML
MSXML ist die COM-basierte Technologie für die Verarbeitung von XML, die in Microsoft Windows enthalten ist. MSXML bietet eine systemeigene Implementierung des DOM mit Unterstützung für XPath und XSLT. Sie enthält auch den NICHT-Caching-, ereignisbasierten SAX2-Parser.
MSXML funktioniert gut, ist in den meisten Szenarien standardmäßig sicher und kann in einem Browser für die clientseitige XML-Verarbeitung in AJAX-Formatanwendungen aufgerufen werden. MSXML kann von jeder Programmiersprache verwendet werden, die COM unterstützt, einschließlich C++, JavaScript und Visual Basic 6.0.
MSXML wird nicht für die Verwendung in verwaltetem Code basierend auf der CLR empfohlen.
LINQ to XML vs. XmlLite
XmlLite ist ein Pull-Parser ohne Zwischenspeicherung und liest nur vorwärts. Entwickler verwenden in erster Linie XmlLite mit C++. Es wird nicht empfohlen, dass Entwickler XmlLite mit verwaltetem Code verwenden.
Der Hauptvorteil von XmlLite besteht darin, dass es sich um einen einfachen, schnellen XML-Parser handelt, der in den meisten Szenarien sicher ist. Seine Bedrohungsfläche ist klein. Wenn Sie nicht vertrauenswürdige Dokumente analysieren müssen und Sie vor Angriffen wie denial of Service oder Gefährdung von Daten schützen möchten, ist XmlLite möglicherweise eine gute Option.
XmlLite ist nicht in Language-Integrated Query (LINQ) integriert. Es führt nicht zu den Produktivitätsverbesserungen der Programmierer, die die motivierende Kraft hinter LINQ sind.