나는 문제가 있으며, 무엇이 문제인지 파악할 수 없다. 목록 상자에서 XML 파일에 요소를 삽입하고 싶습니다. 목록 상자에는 문자열과 int 변수가있는 Menuelem 요소가 있습니다. 목록에서 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 사용하여이 문제를 해결 할 수
: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을보고 싶은 것은이 같은입니까?
-1 : OP의 마음을 읽고 원래의 문제를 해결하려면 분명히 틀립니다. OP는 "menuitem"요소를 방금 추가 한 특정 사용자에게 추가하려고합니다. 솔루션에있는 것처럼 문서에있는 첫 번째 사용자가 아닌 것입니다. –
@DanielT - Fyodor Soikin은 좋은 지적입니다. 추가 된 사용자 만 사용해야합니다 (또는 사용자를 완전하게 만들고 문서에 추가하는 것보다 낫습니다). –
모든 답변을 주셔서 감사합니다. – fzl