2009-06-02 71 views
1

Let's說我有下面的XML,插入的XElement包圍另一個的XElement與LinqToXml

<Where><BeginsWith>...</BeginsWith></Where> 

,現在我想「插入」包圍BeginsWith子句<And>條款,所以它看起來像這樣以後,

<Where><And><BeginsWith>...</BeginsWith></And></Where> 

我該如何用LinqToXml來實現?

Add方法,我基本上是做 where.Add(new XElement("And")),只會增加「與」 BeginsWith後,像這樣,

<Where><BeginsWith>...</BeginsWith><And /></Where> 

回答

6
  • 獲取BeginsWith元素就可以了
  • 呼叫XNode.Remove()從刪除它在哪裏
  • 添加和元素
  • 添加BeginsWith到和元素(或和元素使用它作爲內容創建開頭)

例如:

using System; 
using System.Xml.Linq; 

public class Test 
{ 
    public static void Main() 
    { 
     XElement where = XElement.Parse 
      ("<Where><BeginsWith>...</BeginsWith></Where>"); 
     XElement beginsWith = where.Element("BeginsWith"); 
     beginsWith.Remove(); 
     where.Add(new XElement("And", beginsWith)); 
     Console.WriteLine(where); 
    }   
} 
+0

感謝喬恩,這就像一個魅力:-) – 2009-06-02 07:56:12

1

我不知道有任何的原子操作,會做這個給你。您可能需要添加「And」元素,然後將BeginsWith元素移入其中。