好的,所以我正在制作一个程序,您可以在其中选择当天,并添加当天吃的东西并将其记录到 xml 文件中。您还可以选择吃饭的时间,例如早餐后锻炼等。现在我的 xml 如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<Log>
<DAY date="11/8/1995" id ="1">
<Breakfast>
<food size="1">mys</food>
</Breakfast>
<MidAfternoon>
<food size="2">mys</food>
</MidAfternoon>
<Lunch>
<food size="0.5">mys</food>
</Lunch>
<PostWorkout>
<food size="10">mys</food>
</PostWorkout>
<BeforeBed>
<food size="20">mys</food>
</BeforeBed>
</DAY>
<DAY date="5/20/12" id="2">
<Breakfast>
<food size="1">mys</food>
</Breakfast>
<MidAfternoon>
<food size="2">mys</food>
</MidAfternoon>
<Lunch>
<food size="0.5">mys</food>
</Lunch>
<PostWorkout>
<food size="10">mys</food>
</PostWorkout>
<BeforeBed>
<food size="20">mys</food>
</BeforeBed>
</DAY>
我需要做的是 1 找出日期是否存在,如果不创建一个新的“DAY”(我知道怎么做),但如果它搜索 xml 文件并发现当前选择的日期(使用日期选择器)已经记录了一个 DAY 来确定用户是什么时候吃这种食物并将其添加到该部分中。
我们知道当用户通过组合框吃食物时,他们选择时间基本上我需要帮助的是如何通过使用“DAY”的日期属性缩小范围以找到正确的“DAY”,然后缩小搜索范围在“DAY”中找到正确的时间来放置新的。
<food size="numberhere">foodname</food>
请帮助我到目前为止得到的只是:
var NOD = from dates in xmlDoc.Descendants("DAY")
select dates;
int i = 0;
foreach (XElement d in NOD)
{
dlist[i] = d;
i++;
}
for (int j = 0; j < i; j++ )
{
if (dlist[j].Attribute("date").Value == datePicker1.Text)
{
Console.WriteLine("this date already has a record");
bRecorded = true;
break;
}
bRecorded = false;
}
另外,如果有人知道执行上述操作的更好方法,那将非常感谢。