簡體   English   中英

使用linq to xml在XML文件中交換兩個元素及其子元素

[英]Swapping two elements and its sub-elements in a xml file using linq to xml

我有一個xml文件,我需要交換幾個標簽。 例如:在下面的示例中,我想交換元素(B和C及其子元素)並將其更新回相同的xml。

<A>
   <B>
      <xxx>
      <zzz>
      .
   </B>
   <C>
      <nnn>
      <mmm>
      .
   </C>
</A>

所以最后應該是下面的樣子

<A>
   <C>
      <nnn>
      <mmm>
      .
   </C>
   <B>
      <xxx>
      <zzz>
      .
   </B>
</A>

在閱讀+解析+保存XML方面有幫助嗎?

對不起,VB。 創建測試XML的代碼將不同,但是將A移到C之后的代碼應該關閉。

        Dim xe As XElement
        ' to load from a file - similar to C#
        ' Dim yourpath As String = "your path here"
        'xe = XElement.Load(yourpath)

        ' for testing
        xe = <A>
                 <B>
                     <xxx></xxx>
                     <zzz></zzz>
      b stuff
   </B>
                 <C>
                     <nnn></nnn>
                     <mmm></mmm>
      c stuff
   </C>
             </A>


        'this should be close to what the C# will look like
        Dim holdB As XElement = New XElement(xe.<B>.FirstOrDefault) 'create copy of the B element
        xe.<B>.Remove() 'remove B

        xe.<C>.FirstOrDefault.AddAfterSelf(holdB) 'add after C

        ' to save file - similar to C#
        ' xe.Save(yourpath)

編輯:轉換零件

XElement xe = default(XElement);
// to load from a file - similar to C#
string yourpath = "your path here";
xe = XElement.Load(yourpath);

XElement holdB = new XElement(xe.FirstOrDefault);
//create copy of the B element
xe.Remove();
//remove B

xe.FirstOrDefault.AddAfterSelf(holdB);
//add after C

// to save file - similar to C#
xe.Save(yourpath);

//=======================================================
//Service provided by Telerik (www.telerik.com)
//Conversion powered by NRefactory.
//Twitter: @telerik
//Facebook: facebook.com/telerik
//=======================================================

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM