Мне нужно создать новый XDocument на основе другого XDocument, и поэтому я хочу пройтись по всем XElements исходного XDocument, добавляя только те XElements, которые соответствуют определенным критериям, к новому XDocument.
проблема в том, что моя переменная «дубликаты» всегда равна нулю, но она всегда должна содержать хотя бы один элемент, который является текущим на данный момент.
XDocument doc = new XDocument();
XElement rootElement = new XElement("users");
var allElements = originalDoc.Element("users").Elements().Where(e => e.Name.LocalName == "user");
foreach (var xUser in allElements)
{
var duplicates = originalDoc.Element("users").Elements().Where(e => e.Attribute("Login").Value == "Demo1");
rootElement.Add(xUser);
}
doc.Add(rootElement);
return doc;
Где originalDoc - это XDocument, каков синтаксис LINQ длявыбрать из моего XDocument в этот момент все те XElements, которые имеют определенное значение атрибута?
Приложение:
Вот как выглядит XML, без пространств имен или каких-либо дополнительных элементов, только корневой элемент иодин уровень подэлементов:
<users>
<user ProjectName="TheCompany1" ProjectSlug="testName" Login="Demo1" Name="Test user" ActivationState="FullyActivated" Country="" Created="2011-03-04T20:32:04.367" IsCustomUser="false" DeleteFilesOnLogout="false" Email="validation@company.com" IsDefaultLoginUser="true" IsDefaultTestUser="false" IsLockedOut="false" MaxFileSize="300000" PostFileEnabled="true" RestServiceEnabled="false" Salutation=""Groups="Everyone" />
<user ProjectName="TheCompany2" ProjectSlug="testName" Login="Demo2" Name="Test user" ActivationState="FullyActivated" Country="" Created="2011-03-04T20:32:04.367" IsCustomUser="false" DeleteFilesOnLogout="false" Email="validation@company.com" IsDefaultLoginUser="true" IsDefaultTestUser="false" IsLockedOut="false" MaxFileSize="300000" PostFileEnabled="true" RestServiceEnabled="false" Salutation=""Groups="Everyone" />
<user ProjectName="TheCompany3" ProjectSlug="testName" Login="Demo3" Name="Test user" ActivationState="FullyActivated" Country="" Created="2011-03-04T20:32:04.367" IsCustomUser="false" DeleteFilesOnLogout="false" Email="validation@company.com" IsDefaultLoginUser="true" IsDefaultTestUser="false" IsLockedOut="false" MaxFileSize="300000" PostFileEnabled="true" RestServiceEnabled="false" Salutation=""Groups="Everyone" />
</users>