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

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


XNode.ReplaceWith Метод

Определение

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

Перегрузки

ReplaceWith(Object)

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

ReplaceWith(Object[])

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

Примеры

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

XElement xmlTree = new XElement("Root",  
    new XElement("Child1", "child1 content"),  
    new XElement("Child2", "child2 content"),  
    new XElement("Child3", "child3 content"),  
    new XElement("Child4", "child4 content"),  
    new XElement("Child5", "child5 content")  
);  
XElement child3 = xmlTree.Element("Child3");  
child3.ReplaceWith(  
    new XElement("NewChild", "new content")  
);  
Console.WriteLine(xmlTree);  

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

<Root>  
  <Child1>child1 content</Child1>  
  <Child2>child2 content</Child2>  
  <NewChild>new content</NewChild>  
  <Child4>child4 content</Child4>  
  <Child5>child5 content</Child5>  
</Root>  

Комментарии

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

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

Хранит XContainer свои дочерние узлы в виде единого списка XNode объектов. Это означает, что ReplaceWith метод должен просматривать список прямых дочерних узлов в родительском контейнере. Поэтому использование этого метода может повлиять на производительность.

ReplaceWith(Object)

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

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

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

Параметры

content
Object

Содержимое для замены в узле.

Примеры

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

XElement xmlTree = new XElement("Root",  
    new XElement("Child1", "child1 content"),  
    new XElement("Child2", "child2 content"),  
    new XElement("Child3", "child3 content"),  
    new XElement("Child4", "child4 content"),  
    new XElement("Child5", "child5 content")  
);  
XElement child3 = xmlTree.Element("Child3");  
child3.ReplaceWith(  
    new XElement("NewChild", "new content")  
);  
Console.WriteLine(xmlTree);  

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

<Root>  
  <Child1>child1 content</Child1>  
  <Child2>child2 content</Child2>  
  <NewChild>new content</NewChild>  
  <Child4>child4 content</Child4>  
  <Child5>child5 content</Child5>  
</Root>  

Комментарии

Этот метод сначала удаляет этот узел из родительского узла, а затем добавляет указанное содержимое в родительский узел вместо этого узла.

Хранит XContainer свои дочерние узлы в виде единого списка XNode объектов. Это означает, что ReplaceWith метод должен просматривать список прямых дочерних узлов в родительском контейнере. Поэтому использование этого метода может повлиять на производительность.

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

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

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

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

.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

ReplaceWith(Object[])

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

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

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

Параметры

content
Object[]

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

Примеры

В следующем примере показано использование результатов запроса LINQ to XML в качестве входных данных для этого метода.

XElement srcTree = new XElement("Root",  
    new XElement("Element1", 1),  
    new XElement("Element2", 2),  
    new XElement("Element3", 3),  
    new XElement("Element4", 4),  
    new XElement("Element5", 5)  
);  
XElement xmlTree = new XElement("Root",  
    new XElement("Child1", 1),  
    new XElement("Child2", 2),  
    new XElement("Child3", 3),  
    new XElement("Child4", 4),  
    new XElement("Child5", 5)  
);  
XElement child3 = xmlTree.Element("Child3");  
child3.ReplaceWith(  
    from el in srcTree.Elements()  
    where (int)el > 3  
    select el  
);  
Console.WriteLine(xmlTree);  

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

<Root>  
  <Child1>1</Child1>  
  <Child2>2</Child2>  
  <Element4>4</Element4>  
  <Element5>5</Element5>  
  <Child4>4</Child4>  
  <Child5>5</Child5>  
</Root>  

Комментарии

Этот метод сначала удаляет этот узел из родительского узла, а затем добавляет указанное содержимое в родительский узел вместо этого узла.

Хранит XContainer свои дочерние узлы в виде единого списка XNode объектов. Это означает, что ReplaceWith метод должен просматривать список прямых дочерних узлов в родительском контейнере. Поэтому использование этого метода может повлиять на производительность.

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

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

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

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

.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