簡體   English   中英

用C#插入xml標簽

[英]insert xml tag with c#

我正在嘗試在現有的xml文件中插入XML標記。 在C#中插入XML標記並不是真正的問題,但是我的問題是,我需要在該文件中某個位置上的新的開始標記和結束標記……有人可以幫助我嗎?

這里是一個例子:

這是之前的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>

有誰能夠幫助我?

你可以試試這個

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

您可以將現有的Item包裝在新的XElement然后替換原始文檔上的節點:

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

創建此:

<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>

如果您具有LINQPad,則可以運行以下腳本: http : //share.linqpad.net/7c636x.linq

暫無
暫無

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

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