SORU
2 EKİM 2009, Cuma


XDocument XmlDocument dönüştürme ve tersi

Çok basit bir sorun. XDocument bir XML dosyası oluşturmak için kullanın. Ben sonra XmlDocument sınıfı olarak iade etmek istiyorum. XDocument ve geri daha fazla düğüm eklemek için dönüştürmek için ihtiyacım olan XmlDocument bir değişken var.

Ne olen verimliXDocument ve XmlDocument arasında XML dönüştürmek için yöntem? (Dosyada herhangi bir geçici depolama kullanmadan.)

CEVAP
2 EKİM 2009, Cuma


Bu xDocument yerleşik kullanabilirsiniz.() CreateReader ve dönüştürmek için bir XmlNodeReader bir ileri bir geri.

Daha kolay çalışmak için yapmak için bir Uzantısı yöntemi içine koyarak.

using System;
using System.Xml;
using System.Xml.Linq;

namespace MyTest
{
    internal class Program
    {
        private static void Main(string[] args)
        {

            var xmlDocument = new XmlDocument();
            xmlDocument.LoadXml("<Root><Child>Test</Child></Root>");

            var xDocument = xmlDocument.ToXDocument();
            var newXmlDocument = xDocument.ToXmlDocument();
            Console.ReadLine();
        }
    }

    public static class DocumentExtensions
    {
        public static XmlDocument ToXmlDocument(this XDocument xDocument)
        {
            var xmlDocument = new XmlDocument();
            using(var xmlReader = xDocument.CreateReader())
            {
                xmlDocument.Load(xmlReader);
            }
            return xmlDocument;
        }

        public static XDocument ToXDocument(this XmlDocument xmlDocument)
        {
            using (var nodeReader = new XmlNodeReader(xmlDocument))
            {
                nodeReader.MoveToContent();
                return XDocument.Load(nodeReader);
            }
        }
    }
}

Kaynaklar:

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 10 Daughters, 2 Sons

    10 Daughters

    10 Mart 2009
  • Khan Academy

    Khan Academy

    17 Kasım 2006
  • MagicofRahat

    MagicofRahat

    13 Temmuz 2007

İLGİLİ SORU / CEVAPLAR