将XDocument转换为XmlDocument,反之亦然

这是我遇到的一个非常简单的问题。我使用XDocument生成XML文件。然后我想将其作为XmlDocument类返回。
我有一个XmlDocument变量,我需要将它转换回XDocument以附加更多节点

那么,在XDocument和XmlDocument之间转换XML最有效的方法是什么?(不在文件中使用任何临时存储。)

您可以使用内置的xDocument.CreateReader()和XmlNodeReader来回转换

将其放入扩展方法中,使其更易于使用

使用系统;
使用System.Xml;
使用System.Xml.Linq;
名称空间MyTest
{
内部课程计划
{
私有静态void Main(字符串[]args)
{
var xmlDocument=新的xmlDocument();
加载xml(<Root><Child>Test</Child></Root>);
var xDocument=xmlDocument.ToXDocument();
var newXmlDocument=xDocument.ToXmlDocument();
Console.ReadLine();
}
}
公共静态类文档扩展
{
公共静态XmlDocument ToXmlDocument(此XDocument XDocument)
{
var xmlDocument=新的xmlDocument();
使用(var xmlReader=xDocument.CreateReader())
{
加载(xmlReader);
}
归还文件;
}
公共静态XDocument文档(此XmlDocument XmlDocument)
{
使用(var nodeReader=新的XmlNodeReader(xmlDocument))
{
noderReader.MoveToContent();
返回XDocument.Load(nodeReader);
}
}
}
}

资料来源:

  • http://msdn.microsoft.com/en-us/library/bb356384.aspx
  • http://geekswithblogs.net/aspringer/archive/2009/07/01/xdocument-extension.aspx

发表评论