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

  • Abe Olandres

    Abe Olandres

    16 EYLÜL 2006
  • mliskIT

    mliskIT

    29 Mart 2012
  • UKF Dubstep

    UKF Dubstep

    29 NİSAN 2009