XNode.ReplaceWith 方法

定義

以指定的內容取代這個節點。

多載

ReplaceWith(Object)

以指定的內容取代這個節點。

ReplaceWith(Object[])

以指定的內容取代這個節點。

範例

下列範例會使用此方法,以不同的內容取代節點的內容。

C#
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);  

這個範例會產生下列輸出:

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

備註

如需可以傳遞至此方法之有效內容的詳細資訊,請參閱 XElement 和 XDocument 物件的有效內容

這個方法會引發 ChangedChanging 事件。

會將 XContainer 其子節點儲存為物件的單一連結清單 XNode 。 這表示 ReplaceWith 方法必須周遊父容器底下的直接子節點清單。 因此,使用此方法可能會影響您的效能。

ReplaceWith(Object)

來源:
XNode.cs
來源:
XNode.cs
來源:
XNode.cs

以指定的內容取代這個節點。

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

參數

content
Object

取代這個節點的內容。

範例

下列範例會使用此方法,以不同的內容取代節點的內容。

C#
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);  

這個範例會產生下列輸出:

XML
<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 物件的有效內容

這個方法會引發 ChangedChanging 事件。

另請參閱

適用於

.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

以指定的內容取代這個節點。

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

參數

content
Object[]

新內容的參數清單。

範例

下列範例示範如何使用LINQ to XML查詢的結果做為此方法的輸入。

C#
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);  

這個範例會產生下列輸出:

XML
<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 物件的有效內容

這個方法會引發 ChangedChanging 事件。

另請參閱

適用於

.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