У меня есть Xml, который я фильтрую с помощью XPath (запрос, подобный этому):
XmlNodeList allItems =
xDoc.SelectNodes("//Person[not(PersonID = following::Person/PersonID)]");
Это отфильтровывает все дубликаты из моего исходного файла Persons Xml. Я хочу создать новый экземпляр XmlDocument из списка XmlNodeList, сгенерированного выше. На данный момент единственный способ, которым я могу это сделать, - это перебрать список XmlNode и построить строку Xml (как таковую):
XmlNodeList allItems = xDoc.SelectNodes("//Person[not(PersonID = following::Person/PersonID)]");
StringBuilder xml = new StringBuilder("<Persons>");
foreach (XmlNode node in allItems)
xml.Append(node.OuterXml);
xml.Append("</Persons>");
XmlDocument newXDoc = new XmlDocument();
newXDoc.LoadXml(xml.ToString());
Должен быть более эффективный способ сделать это?