おおよそ次のようなxmlドキュメントがあります
<Gov>
<Head>
<address></address>
<address></address>
</Head>
<Body>
<line1></line1>
<line1></line1>
</Body>
<Gov>
本文 (およびそれを含む) のすべてを新しい XDocument にコピーする必要があります。最善の方法は何ですか
おおよそ次のようなxmlドキュメントがあります
<Gov>
<Head>
<address></address>
<address></address>
</Head>
<Body>
<line1></line1>
<line1></line1>
</Body>
<Gov>
本文 (およびそれを含む) のすべてを新しい XDocument にコピーする必要があります。最善の方法は何ですか
あるドキュメントから別のドキュメントにデータ「xml」をコピーする例を次に示します。パーソナライズされたノードを選択して
まず、Xdocument を XmlDocument に変換する必要があります。
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);
}
}
}
}
そして、XmlDocument を使用して単純化されたコピー
XmlDocument doc1 = new XmlDocument();
doc1.LoadXml(@"<Hello>
<World>Test</World>
</Hello>");
XmlDocument doc2 = new XmlDocument();
doc2.LoadXml(@"<Hello>
</Hello>");
XmlNode copiedNode = doc2.ImportNode(doc1.SelectSingleNode("/Hello/World"), true);
doc2.DocumentElement.AppendChild(copiedNode);
詳細はこちら:
これがお役に立てば幸いです。