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

  • Lena Danya

    Lena Danya

    11 NİSAN 2010
  • thetrollska

    thetrollska

    2 EKİM 2009
  • Valdorsha

    Valdorsha

    8 Mayıs 2006