我有這個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更新的很好... –