Funktionale Transformation von XML (C#)Functional Transformation of XML (C#)

In diesem Thema wird der Ansatz der reinen funktionalen Transformation zum Ändern von XML-Dokumenten erläutert und dem prozeduralen Ansatz gegenübergestellt.This topic discusses the pure functional transformation approach to modifying XML documents, and contrasts it with a procedural approach.

Ändern eines XML-DokumentsModifying an XML Document

Eine der häufigsten Aufgaben, die XML-Programmierer zu lösen haben, ist das Transformieren von XML von einer Form in eine andere Form.One of the most common tasks for an XML programmer is transforming XML from one shape to another. Die Form eines XML-Dokuments wird durch die Struktur des Dokuments bestimmt. Zur Form gehört Folgendes:The shape of an XML document is the structure of the document, which includes the following:

  • die durch das Dokument ausgedrückte HierarchieThe hierarchy expressed by the document.

  • die Element- und AttributnamenThe element and attribute names.

  • die Datentypen der Elemente und AttributeThe data types of the elements and attributes.

Beim Transformieren von XML von einer Form in eine andere ist es in der Regel am effektivsten, mit der reinen funktionalen Transformation zu arbeiten.In general, the most effective approach to transforming XML from one shape to another is that of pure functional transformation. Bei dieser Herangehensweise muss der Programmierer in erster Linie eine Transformation erstellen, die auf das gesamte XML-Dokument (oder auf einen oder mehrere streng definierte Knoten) angewendet wird.In this approach, the primary programmer task is to create a transformation which is applied to the entire XML document (or to one or more strictly defined nodes). Die funktionale Transformation ist (zumindest für Programmierer, die damit vertraut sind) sicher am einfachsten zu codieren, führt zu gut verwaltbarem Code und ist häufig kompakter als andere Herangehensweisen.Functional transformation is arguably the easiest to code (after a programmer is familiar with the approach), yields the most maintainable code, and is often more compact than alternative approaches.

Technologien für die funktionale XML-TransformationXML Functional Transformational Technologies

Microsoft bietet zwei funktionale Transformationstechnologien für XML-Dokumente: XSLT und LINQ to XML.Microsoft offers two functional transformation technologies for use on XML documents: XSLT and LINQ to XML. XSLT wird im verwalteten System.Xml.Xsl-Namespace und in der systemeigenen COM-Implementierung von MSXML unterstützt.XSLT is supported in the System.Xml.Xsl managed namespace and in the native COM implementation of MSXML. XSLT ist zwar eine robuste Technologie zum Ändern von XML-Dokumenten, erfordert aber Kenntnisse auf einem speziellen Gebiet: der XSLT-Sprache und der sie unterstützenden APIs.Although XSLT is a robust technology for manipulating XML documents, it requires expertise in a specialized domain, namely the XSLT language and its supporting APIs.

LINQ to XML stellt die Tools bereit, die für das ausdrucksstarke und leistungsfähige Codieren reiner funktionaler Transformationen innerhalb des C#- und des Visual Basic-Codes benötigt werden.LINQ to XML provides the tools necessary to code pure functional transformations in an expressive and powerful way, within C# or Visual Basic code. So verwenden z. B. viele der in der LINQ to XML-Dokumentation verwendeten Beispiele reine Funktionen.For example, many of the examples in the LINQ to XML documentation use a pure functional approach. Auch im Tutorial: Manipulating Content in a WordprocessingML Document (C#) (Tutorial: Bearbeiten des Inhalts eines WordprocessingML-Dokuments (C#)) wird LINQ to XML in einer funktionalen Herangehensweise verwendet, um Informationen in einem Microsoft Word-Dokument zu bearbeiten.Also, in the Tutorial: Manipulating Content in a WordprocessingML Document (C#) tutorial, we use LINQ to XML in a functional approach to manipulate information in a Microsoft Word document.

Einen ausführlicheren Vergleich zwischen LINQ to XML und anderen XML-Technologien von Microsoft finden Sie unter LINQ to XML vs.(LINQ to XML im Vergleich zu) Other XML Technologies (anderen XML-Technologien).For a more complete comparison of LINQ to XML with other Microsoft XML technologies, see LINQ to XML vs. Other XML Technologies.

XSLT ist das empfohlene Tool für dokumentorientierte Transformationen, wenn das Quelldokument eine unregelmäßige Struktur besitzt.XSLT is the recommended tool for document-centric transformations when the source document has an irregular structure. Dokumentorientierte Transformationen können aber auch von LINQ to XML ausgeführt werden.However, LINQ to XML can also perform document-centric transforms. Weitere Informationen finden Sie unter How to: Use Annotations to Transform LINQ to XML Trees in an XSLT Style (C#) (Vorgehensweise: Verwenden von Anmerkungen zum Transformieren von LINQ to XML-Bäumen in eine XSLT-Formatvorlage (C#)).For more information, see How to: Use Annotations to Transform LINQ to XML Trees in an XSLT Style (C#).

Siehe auchSee Also

Introduction to Pure Functional Transformations (C#) (Einführung in reine funktionale Transformationen (c#))Introduction to Pure Functional Transformations (C#)
Tutorial: Manipulating Content in a WordprocessingML Document (C#) (Tutorial: Bearbeiten von Inhalten in einem WordprocessingML-Dokument (C#))Tutorial: Manipulating Content in a WordprocessingML Document (C#)
LINQ to XML im Vergleich zu anderen XML-TechnologienLINQ to XML vs. Other XML Technologies