您可以使用内置的xdocument.CreateReader()和XmlNodeReader来回转换。
将其放入扩展方法中,使其更易于使用。
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); } } }}资料来源:
- http://msdn.microsoft.com/en-us/library/bb356384.aspx
- http://geekswithblogs.net/aspringer/archive/2009/07/01/xdocument-extension.aspx



