Прочитать на английском

Поделиться через


XContainer.ReplaceNodes Метод

Определение

Заменяет дочерние узлы данного документа или элемента заданным содержимым.

Перегрузки

ReplaceNodes(Object)

Заменяет дочерние узлы данного документа или элемента заданным содержимым.

ReplaceNodes(Object[])

Заменяет дочерние узлы данного документа или элемента заданным содержимым.

Примеры

В следующем примере создаются два XML-дерева, а затем используется этот метод для замены содержимого одного из них результатами запроса.

XElement root = new XElement("Root",  
    new XElement("Child", 1),  
    new XElement("Child", 2),  
    new XElement("Child", 3),  
    new XElement("Child", 4),  
    new XElement("Child", 5)  
);  
root.ReplaceNodes(  
    from el in root.Elements()  
    where (int)el >= 3  
    select el  
);  
Console.WriteLine(root);  

В этом примере выводятся следующие данные:

<Root>  
  <Child>3</Child>  
  <Child>4</Child>  
  <Child>5</Child>  
</Root>  

Комментарии

Дополнительные сведения о допустимом содержимом, которое можно передать в эту функцию, см. в разделе Допустимое содержимое объектов XElement и XDocument.

Этот метод вызывает Changed события и Changing .

Этот метод имеет snapshot семантику. Сначала создается копия нового содержимого. Затем он удаляет все дочерние узлы этого узла. Наконец, он добавляет новое содержимое в качестве дочерних узлов. Это означает, что можно заменить дочерние узлы с помощью запроса к самим дочерним узлам.

ReplaceNodes(Object)

Исходный код:
XContainer.cs
Исходный код:
XContainer.cs
Исходный код:
XContainer.cs

Заменяет дочерние узлы данного документа или элемента заданным содержимым.

public void ReplaceNodes(object content);
public void ReplaceNodes(object? content);

Параметры

content
Object

Объект содержимого, включающий простое содержимое или коллекцию объектов содержимого, которые заменяют дочерние узлы.

Примеры

В следующем примере создается XML-дерево, содержащее дочерние узлы. Затем он заменяет все дочерние узлы одним элементом.

Пример замены дочерних узлов результатами запроса LINQ см. в разделе ReplaceNodes.

XElement root = new XElement("Root",  
    new XElement("Child", 1),  
    new XElement("Child", 2),  
    new XElement("Child", 3),  
    new XElement("Child", 4),  
    new XElement("Child", 5)  
);  
root.ReplaceNodes(  
    from el in root.Elements()  
    where (int)el >= 3  
    select el  
);  
Console.WriteLine(root);  

В этом примере выводятся следующие данные:

<Root>  
  <Child>3</Child>  
  <Child>4</Child>  
  <Child>5</Child>  
</Root>  

Комментарии

Дополнительные сведения о допустимом содержимом, которое можно передать в эту функцию, см. в разделе Допустимое содержимое объектов XElement и XDocument.

Этот метод вызывает Changed события и Changing .

Этот метод имеет snapshot семантику. Сначала создается копия нового содержимого. Затем он удаляет все дочерние узлы этого узла. Наконец, он добавляет новое содержимое в качестве дочерних узлов. Это означает, что можно заменить дочерние узлы с помощью запроса к самим дочерним узлам.

См. также раздел

Применяется к

.NET 10 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

ReplaceNodes(Object[])

Исходный код:
XContainer.cs
Исходный код:
XContainer.cs
Исходный код:
XContainer.cs

Заменяет дочерние узлы данного документа или элемента заданным содержимым.

public void ReplaceNodes(params object[] content);
public void ReplaceNodes(params object?[] content);

Параметры

content
Object[]

Список параметров объектов содержимого.

Примеры

В следующем примере создается словарь и XML-дерево. Затем он запрашивает словарь, проецирует результаты в IEnumerable<T>XElementи заменяет содержимое XML-дерева результатами запроса.

XElement root = new XElement("Root",  
    new XElement("Child", 1),  
    new XElement("Child", 2),  
    new XElement("Child", 3),  
    new XElement("Child", 4),  
    new XElement("Child", 5)  
);  
root.ReplaceNodes(  
    from el in root.Elements()  
    where (int)el >= 3  
    select el  
);  
Console.WriteLine(root);  

В этом примере выводятся следующие данные:

<Root>  
  <Child>3</Child>  
  <Child>4</Child>  
  <Child>5</Child>  
</Root>  

Комментарии

Дополнительные сведения о допустимом содержимом, которое можно передать в эту функцию, см. в разделе Допустимое содержимое объектов XElement и XDocument.

Этот метод вызывает Changed события и Changing .

Этот метод имеет snapshot семантику. Сначала создается копия нового содержимого. Затем он удаляет все дочерние узлы этого узла. Наконец, он добавляет новое содержимое в качестве дочерних узлов. Это означает, что можно заменить дочерние узлы с помощью запроса к самим дочерним узлам.

См. также раздел

Применяется к

.NET 10 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0