2013-08-30 74 views
0

我需要在使用Linq的XML最后一个元素之前添加新元素。使用Linq在最后一个元素之前添加XML元素

例如:

<?xml version="1.0" encoding="utf-8"?> 
<products> 
    <product id="p1"> 
    <name>Delta</name> 
    <price>800</price> 
    <country>Denmark</country> 
    </product> 
    <product id="p3"> 
    <name>Alfa</name> 
    <price>1200</price> 
    <country>Germany</country> 
    </product> 
</products> 

新元素<stock></stock>前应使用LINQ

+0

好了,你只需要添加一个新的XElement的根,它会在被放<country>元素插入自动结束。到目前为止你尝试过什么,出了什么问题?你使用LINQ或不? (您的标题和正文不同意......)通过LINQ,您的意思是“LINQ to XML”或“LINQ查询”? –

+0

使用Linq?没有使用Linq?这是什么?通过“最后一个元素”,你是指最后一个“产品”元素? – JLRishe

回答

0
// load the XML file into XDocument instance 
var doc = XDocument.Load("sourceFile.xml"); 

// find all <country> elements 
var countries = doc.Root.Elements("product").Elements("Country"); 

// add <stock /> before each <country> elements 
foreach(var country in countries) 
{ 
    country.AddBeforeSelf(new XElement("stock")); 
} 

// save document to the file 
doc.Save("sourceFile.xml"); 
+0

我用下面的语句添加元素xdoc.Elements(“Products”)。Descendants(“product”)。ToList().ForEach(el => el.LastNode.AddBeforeSelf(new XElement(“stock”)));在上面的查询中我使用了foreach语句。 有没有什么方法可以添加而不使用任何循环? – Saranram

+0

我不这么认为...... – MarcinJuraszek

相关问题