XNode.ReplaceWith 方法

定义

将此节点替换为指定的内容。Replaces this node with the specified content.

重载

ReplaceWith(Object)

将此节点替换为指定的内容。Replaces this node with the specified content.

ReplaceWith(Object[])

将此节点替换为指定的内容。Replaces this node with the specified content.

示例

下面的示例使用此方法来替换具有不同内容的节点的内容。The following example uses this method to replace the contents of a node with different content.

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);  
Dim xmlTree As XElement = _   
        <Root>  
            <Child1>child1 content</Child1>  
            <Child2>child2 content</Child2>  
            <Child3>child3 content</Child3>  
            <Child4>child4 content</Child4>  
            <Child5>child5 content</Child5>  
        </Root>  
  
Dim child3 As XElement = xmlTree.<Child3>(0)  
child3.ReplaceWith(<NewChild>new content</NewChild>)  
Console.WriteLine(xmlTree)  

该示例产生下面的输出:This example produces the following output:

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

注解

有关可传递到此方法的有效内容的详细信息,请参阅system.xml.linq.xelement> 和 XDocument 对象的有效内容For details about the valid content that can be passed to this method, see Valid Content of XElement and XDocument Objects.

此方法将引发 ChangedChanging 事件。This method will raise the Changed and the Changing events.

XContainer 将其子节点存储为 XNode 对象的单向链接列表。The XContainer stores its child nodes as a singly-linked list of XNode objects. 这意味着 ReplaceWith 方法必须遍历父容器下直接子节点的列表。This means that the ReplaceWith method must traverse the list of direct child nodes under the parent container. 因此,使用此方法可能会影响性能。Therefore, using this method might affect your performance.

ReplaceWith(Object)

将此节点替换为指定的内容。Replaces this node with the specified content.

public:
 void ReplaceWith(System::Object ^ content);
public void ReplaceWith (object content);
member this.ReplaceWith : obj -> unit
Public Sub ReplaceWith (content As Object)

参数

content
Object

替换此节点时所用的内容。Content that replaces this node.

示例

下面的示例使用此方法来替换具有不同内容的节点的内容。The following example uses this method to replace the contents of a node with different content.

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);  
Dim xmlTree As XElement = _   
        <Root>  
            <Child1>child1 content</Child1>  
            <Child2>child2 content</Child2>  
            <Child3>child3 content</Child3>  
            <Child4>child4 content</Child4>  
            <Child5>child5 content</Child5>  
        </Root>  
  
Dim child3 As XElement = xmlTree.<Child3>(0)  
child3.ReplaceWith(<NewChild>new content</NewChild>)  
Console.WriteLine(xmlTree)  

该示例产生下面的输出:This example produces the following output:

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

注解

此方法首先从其父级中删除此节点,然后将指定的内容添加到此节点的父节点中的位置。This method first removes this node from its parent, and then adds the specified content to this node's parent, in the place of this node.

XContainer 将其子节点存储为 XNode 对象的单向链接列表。The XContainer stores its child nodes as a singly-linked list of XNode objects. 这意味着 ReplaceWith 方法必须遍历父容器下直接子节点的列表。This means that the ReplaceWith method must traverse the list of direct child nodes under the parent container. 因此,使用此方法可能会影响性能。Therefore, using this method might affect your performance.

有关可传递到此方法的有效内容的详细信息,请参阅system.xml.linq.xelement> 和 XDocument 对象的有效内容For details about the valid content that can be passed to this method, see Valid Content of XElement and XDocument Objects.

此方法将引发 ChangedChanging 事件。This method will raise the Changed and the Changing events.

另请参阅

ReplaceWith(Object[])

将此节点替换为指定的内容。Replaces this node with the specified content.

public:
 void ReplaceWith(... cli::array <System::Object ^> ^ content);
public void ReplaceWith (params object[] content);
member this.ReplaceWith : obj[] -> unit
Public Sub ReplaceWith (ParamArray content As Object())

参数

content
Object[]

新内容的参数列表。A parameter list of the new content.

示例

下面的示例演示如何使用 LINQ to XMLLINQ to XML 查询的结果作为此方法的输入。The following example shows using the results of a LINQ to XMLLINQ to XML query as the input to this method.

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);  
Dim srcTree As XElement = _   
        <Root>  
            <Element1>1</Element1>  
            <Element2>2</Element2>  
            <Element3>3</Element3>  
            <Element4>4</Element4>  
            <Element5>5</Element5>  
        </Root>  
  
Dim xmlTree As XElement = _   
        <Root>  
            <Child1>1</Child1>  
            <Child2>2</Child2>  
            <Child3>3</Child3>  
            <Child4>4</Child4>  
            <Child5>5</Child5>  
        </Root>  
  
Dim child3 As XElement = xmlTree.<Child3>(0)  
child3.ReplaceWith( _  
    From el In srcTree.Elements() _  
    Where (CInt(el) > 3) _  
    Select el)  
  
Console.WriteLine(xmlTree)  

该示例产生下面的输出:This example produces the following output:

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

注解

此方法首先从其父级中删除此节点,然后将指定的内容添加到此节点的父节点中的位置。This method first removes this node from its parent, and then adds the specified content to this node's parent, in the place of this node.

XContainer 将其子节点存储为 XNode 对象的单向链接列表。The XContainer stores its child nodes as a singly-linked list of XNode objects. 这意味着 ReplaceWith 方法必须遍历父容器下直接子节点的列表。This means that the ReplaceWith method must traverse the list of direct child nodes under the parent container. 因此,使用此方法可能会影响性能。Therefore, using this method might affect your performance.

有关可传递到此方法的有效内容的详细信息,请参阅system.xml.linq.xelement> 和 XDocument 对象的有效内容For details about the valid content that can be passed to this method, see Valid Content of XElement and XDocument Objects.

此方法将引发 ChangedChanging 事件。This method will raise the Changed and the Changing events.

另请参阅

适用于