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

  • Dogbert files

    Dogbert file

    12 Ocak 2012
  • George McCarron

    George McCar

    29 Mayıs 2013
  • SuppressedStorm

    SuppressedSt

    11 AĞUSTOS 2013