我有一個問題,我無法弄清楚是怎麼回事。我想從列表框中將元素插入到我的XML文件中。在列表框中有Menuelem元素,它有一個字符串和一個int變量。將元素添加到列表中的xml
dt = DateTime.Now;
XDocument doc = XDocument.Load(path);
XElement user = new XElement("user", new XAttribute("id", id),
new XElement("order", new XAttribute("id", key),
new XElement("date", dt.ToString()))
);
doc.Element("orders").Add(user);
doc.Save(path);
foreach (Menuelem item in listBox6.Items)
{
int j=0;
var menuelem = new XElement("menuelem", new XAttribute("db", j),
new XElement("name", item.Nev),
new XElement("price", item.Ar));
doc.Element("order").Add(menuelem); //throws nullreferenceexception
doc.Save(path);
j++;
}
listBox6.Items.Clear();
label3.Text = "";
key++;
}
我想看看我的XML是這樣的:
<?xml version="1.0" encoding="utf-8" ?>
<orders>
<user id="0">
<order id="0">
<date>2012.11.19. 2:16:12</date>
<menuelem db = "0">
<name>asdasdas</name>
<price>1000</price>
<menuelem db = "1">
<name>asds</name>
<price>2000</price>
</order>
<user id="0">
<order id="1">
<date>2012.11.19. 2:16:15</date>
<menuelem db = "0">
<name>asdasdas</name>
<price>1000</price>
<menuelem db = "1">
<name>asds</name>
<price>2000</price>
</order>
</user>
</orders>
任何人都可以解決這個使用LINQ?
-1:如果你想閱讀OP的想法並解決他原來的問題,那麼你顯然是不正確的。 OP希望將「menuitem」元素添加到他剛剛添加的特定用戶,而不是您的解決方案中存在於文檔中的第一個用戶。 –
@DanielT - Fyodor Soikin提供了一個很好的觀點 - 您應該只使用添加的用戶(或者更好地構建用戶而不是添加到文檔中)。 –
感謝所有的答案,我可以讓它工作。 – fzl