2010-10-29 44 views
1

我需要將大部分新生成的xml添加到現有的xdoc中,但僅適用於其中一個子項包含特定值的節點。這裏有一個例子:如何使用XDocument和Linq添加到目標對象?

  XDocument originalXML = GetEntityXml(ref exportTile); 

      XDocument newXML = testr(); 

      XElement xe = new XElement("Subtiles"); 

      var listTileST = from p in originalXML.Descendants("TileST") 
         where (string)p.Element("TileNumber").Value == "0" 
         select p; 

在我originalXML我打電話了一些方法,其中樹結構是根 - > Tiles-> TileST返回一個XDocument那裏有一堆TileST nodes.Each TileST節點都有一個孩子叫TileNumber,在這個例子中,我想要一個值爲0. newXML包含我最終想要添加到某個節點的內容。

所以,現在我檢索了我想在listTileST中的節點,我不知道該去哪裏。我想要做的就是將newXML中的所有xml添加到listTileST中檢索到的節點,顯然希望它具有存儲在originalXML中的節點的效果。

回答

1

你試過:

foreach(XElement currentElement in listTileSt) 
{ 
    currentElement.Add(newXml.Elements()); 
} 

我大多是XElement和不工作與XDocument在那裏你可以添加一個XElement到另一個XElement

+0

明白了,我做了幾乎相同的事情,但沒有看到我的問題是一個永久循環問題,因爲新的XML也有一個瓦片數爲0.因此,我強迫它只看着來自根節點的TileST節點。 – Ilya 2010-10-29 18:11:05