2012-03-21 24 views
0

我有一個問題。是否有可能導航到XML中的特定字段並添加元素?在C#中使用XDocument創建PathPathNavigator(xml with linq)

我嘗試這樣做:

XDocument doc = XDocument.Load("myxmldoc.xml"); 

doc.Element("Table").Element(Product).CreateNavigator().Add(new XElement("Lamp", "Lamp")); 

不用說沒有奏效。事情是,我有一個看起來像這樣的XML:

<Table> 
    <Product> 
     <Chair/> 
     <Table/> 
     <ChessBoard/> 
    </Product> 
    <Product> 
     <Chair/> 
     <Table/> 
     <ChessBoard/> 
    </Product> 
    <Product> 
     <Chair/> 
     <Table/> 
     <ChessBoard/> 
    </Product> 
</Table> 

正如你可以看到我有很多產品的標籤,我希望能夠給項目燈使用LINQ添加到特定的節點。每次添加元素時:

doc.Element("Table").Element("Porduct").Add(new XElement("Lamp", "Lamp")); 

燈元素轉到第一個產品節點。我想讓它去一個特定的節點,比如說第二個節點。

有人勸我用:

doc.Element("Table").Element("Porduct").ElementAt(2).Add(new XElement("Lamp", "Lamp")); 

但它不工作。 Visual Studio 2010說它不存在。

回答

0

你需要Elements("Porduct")(注意小號)使用ElementAt()

doc.Element("Table").Elements("Porduct").ElementAt(2).Add(...); 

這將是一個更容易一些,如果產品有一些東西來識別它們,就像一個ID屬性。

(也許你應該修正錯字Porduct/產品

+0

沒趕上我的錯字。謝謝,我會在明天早上嘗試,並回答一個答案。我已經離開了工作,這裏遲到了。 – morcillo 2012-03-21 23:00:19