2017-06-26 9 views
0
に挿入する

XMLタグを既存のXMLファイルに挿入しようとしています。 C#でXMLタグを挿入するのは本当に問題ではありませんが、私の問題は、そのファイルの特定の場所に新しい開始タグと終了タグが必要です...誰でも私を助けることができます...xmlタグをc#

ここ

例:

これは前にXMLファイルです:

<?xml version="1.0" standalone="yes"?> 
<DocumentElement> 
    <Item> 
    <ItemID>2711</ItemID> 
    <ItemTypeID>P</ItemTypeID> 
    <ColorID>1</ColorID> 
    </Item> 
    <Item> 
    <ItemID>64566</ItemID> 
    <ItemTypeID>P</ItemTypeID> 
    <ColorID>3</ColorID> 
    </Item> 
</DocumentElement> 

...これは新しいXMLファイルでなければなりません - >新しいタグ "インベントリ" と:

<?xml version="1.0" standalone="yes"?> 
<DocumentElement> 
    <Inventory> 
    <Item> 
    <ItemID>2711</ItemID> 
    <ItemTypeID>P</ItemTypeID> 
    <ColorID>1</ColorID> 
    </Item> 
    <Item> 
    <ItemID>64566</ItemID> 
    <ItemTypeID>P</ItemTypeID> 
    <ColorID>3</ColorID> 
    </Item> 
    </Inventory> 
</DocumentElement> 

誰でも助けてください?

+0

'Item'タグをリストに保存し、新しいXmlDocumentを作成し、' Inventory'タグを開いて、リスト内の項目をタグに追加して閉じ、それを保存するのが最も簡単です資料。 –

答えて

0

を試すことができます。

<DocumentElement> 
    <Inventory> 
    <Item> 
     <ItemID>2711</ItemID> 
     <ItemTypeID>P</ItemTypeID> 
     <ColorID>1</ColorID> 
    </Item> 
    <Item> 
     <ItemID>64566</ItemID> 
     <ItemTypeID>P</ItemTypeID> 
     <ColorID>3</ColorID> 
    </Item> 
    </Inventory> 
</DocumentElement> 

XDocument doc = XDocument.Parse("<DocumentElement><Item><ItemID>2711</ItemID><ItemTypeID>P</ItemTypeID><ColorID>1</ColorID></Item><Item><ItemID>64566</ItemID><ItemTypeID>P</ItemTypeID><ColorID>3</ColorID></Item></DocumentElement>"); 
var items = doc.Descendants("Item"); 
XElement inventory = new XElement("Inventory"); 
inventory.Add(items); 
doc.Root.ReplaceNodes(inventory); 
//now you can save the XDocument to a file or whatever 

はこれを作成します。

LINQPadをお持ちの場合は、このスクリプトを実行できます:http://share.linqpad.net/7c636x.linq

0

あなたは、元の文書上のノードを置き換える新しいXElementに既存のItem Sをラップすることができ、この

var doc = XDocument.Load(file); 
       var characters = doc.Descendants("DocumentElement").FirstOrDefault(); 
       if (characters != null) 
       { 
        XElement xe = new XElement("Inventory"); 
        characters.Add(xe); 
        var oColl = doc.Descendants("Item"); 
        xe.Add(oColl);     
       } 
       doc.Save(file);