Я создаю инструмент, который создает / редактирует файлы XML, и я хочу иметь возможность заполнять его фрагментами шаблона, определенными в другом файле XML.
Например, в инструменте есть кнопка «Добавить элемент FooBarBaz», которая добавляет элемент в создаваемый новый документ, и я хочу добавить FooBarBaz, скопировав его из шаблона.
Или, допустим, это мой файл шаблона:
<Templates>
<FooBarBaz Attribute="Value">
<ChildElement/>
</FooBarBaz>
</Templates>
Затем я могу получить фрагмент шаблона с помощью .GetElementsByTagName ("FooBarBaz"), и я хотел бы иметь возможность вставить его в новый документ с помощью чего-то вроде .AppendChild (templateNode).
Но проблема в том, что XmlNode нельзя скопировать из одного XmlDocument в другой, даже если вы используете .Clone () или .CloneNode (), потому что AppendChild () выдает исключение, говорящее, что элемент шаблона принадлежит другому контексту.
Есть ли простой способ скопировать System.Xml.XmlNode между System.Xml.XmlDocuments?