我有这个XML:保存与C#中的XML文件中的通用应用
<?xml version="1.0" encoding="utf-8" ?>
<GirlsTimes>
<Angie>00:00:00</Angie>
...
<Nicole>00:00:00</Nicole>
</GirlsTimes>
我有一个文本框时,你可以把时间格式为 “HH:MM:SS”(TBAngie)。 当焦点在这个文本框丢了,我要保存在同一个XML文件中的新值:
private async void TBAngie_LostFocus(object sender, RoutedEventArgs e)
{
try
{
if (!checkContent(TBAngie.Text))
{
TBAngie.Text = string.Empty;
var dialog = new MessageDialog("Veuillez encodez un temps hh:mm:ss svp.");
await dialog.ShowAsync();
}
else
{
StringBuilder sb = new StringBuilder();
XmlWriterSettings xws = new XmlWriterSettings();
xws.OmitXmlDeclaration = true;
xws.Indent = true;
using (XmlWriter xw = XmlWriter.Create(sb, xws))
{
string repMaxXMLPath = Path.Combine(Package.Current.InstalledLocation.Path, "XML/GirlsTimes.xml");
loadedData = XDocument.Load(repMaxXMLPath);
var items = from item in loadedData.Descendants("GirlsTimes")
where item.Element("Angie").Value != TBAngie.Text
select item;
foreach (XElement itemElement in items)
{
itemElement.SetElementValue("Angie", TBAngie.Text);
}
loadedData.Save(xw);
}
}
}
catch (Exception ex)
{
var dialog = new MessageDialog(ex.Message);
await dialog.ShowAsync();
}
}
显然,<Angie>
节点值更新好(我看到在调试模式升级的节点),但当我刷新页面(退出当前页面并重新加载它)时,该值不会更新。所以我认为我的方法来保存新的XML不好,但我不知道为什么...
我做错了什么?提前致谢。
编辑
就loadedData.Save()
之前我做了一个的ToString()和我有这样的:
<GirlsTimes>
<Angie>00:12:34</Angie>
...
<Nicole>00:00:00</Nicole>
</GirlsTimes>
确保项目至少有一行。 – jdweng
在调用Save之前,打印'loadedData.ToString()'。你在那看到什么? –
@Nox Noctis,我做了一个编辑。 xml更新的很好... –