Aracılığıyla paylaş


XML'nin işlevsel dönüşümü (LINQ to XML)

Bu makalede, XML belgelerini değiştirmek için saf işlevsel dönüştürme yaklaşımı ele alınmaktadır ve yordamsal bir yaklaşımla karşıtlık sağlar.

XML belgesini değiştirme

XML programcısı için en yaygın görevlerden biri XML'i bir şekilden diğerine dönüştürmektir. XML belgesinin şekli, aşağıdakileri içeren belgenin yapısıdır:

  • Belge tarafından ifade edilen hiyerarşi.
  • Öğe ve öznitelik adları.
  • Öğelerin ve özniteliklerin veri türleri.

Genel olarak, XML'i bir şekilden diğerine dönüştürmenin en etkili yaklaşımı saf işlevsel dönüşümdür. Bu yaklaşımda birincil programcı görevi, XML belgesinin tamamına (veya bir veya daha fazla kesin tanımlanmış düğüme) uygulanan bir dönüştürme oluşturmaktır. İşlevsel dönüşüm muhtemelen kodlanabilen en kolay yöntemdir (programcı yaklaşımı tanıdıktan sonra), en sürdürülebilir kodu verir ve genellikle alternatif yaklaşımlardan daha kompakttır.

XML işlevsel dönüşüm teknolojileri

Microsoft, XML belgelerinde kullanılmak üzere iki işlevsel dönüştürme teknolojisi sunar: XSLT ve LINQ to XML. XSLT, yönetilen ad alanında System.Xml.Xsl ve MSXML'nin yerel COM uygulamasında desteklenir. XSLT, XML belgelerini işlemek için sağlam bir teknoloji olsa da, XSLT dili ve destekleyici API'leri gibi özel bir etki alanında uzmanlığa ihtiyaç duyar.

LINQ to XML, saf işlevsel dönüşümleri C# veya Visual Basic kodu içinde etkileyici ve güçlü bir şekilde kodlayabilmek için gereken araçları sağlar. Örneğin, LINQ to XML belgelerindeki örneklerin çoğu saf işlevsel bir yaklaşım kullanır. Ayrıca, Öğretici: WordprocessingML Belgesindeki İçeriği Düzenleme öğreticisinde, Microsoft Word belgesindeki bilgileri işlemek için işlevsel bir yaklaşımda LINQ to XML kullanırız.

LINQ to XML'nin diğer Microsoft XML teknolojileriyle daha eksiksiz bir karşılaştırması için bkz . LINQ to XML ve diğer XML teknolojileri.

XSLT, kaynak belge düzensiz bir yapıya sahip olduğunda belge merkezli dönüşümler için önerilen araçtır. Ancak LINQ to XML belge merkezli dönüşümler de gerçekleştirebilir. Daha fazla bilgi için bkz . XSLT stilinde LINQ'yi XML ağaçlarına dönüştürmek için ek açıklamaları kullanma.

Ayrıca bkz.