У меня есть проблема, когда я пытаюсь читать XML-файл, который имеет десятичные значения, как 24.5478785 - это возвращает ошибку:Невозможно читать десятичных чисел из XML
There is error in XML document
Может кто-то пожалуйста, сообщите, почему это происходит? Дробная часть в файле выглядит следующим образом: <interval>22,555555</interval>
Мой код:
private void OpenFileXml(bool runIt, string file)
{
//Get data from XML file
XmlSerializer ser = new XmlSerializer(typeof(ActionsEntry));
using (FileStream fs = System.IO.File.Open(file, FileMode.Open))
{
try
{
ActionsEntry entry = (ActionsEntry)ser.Deserialize(fs);
lvActions.Items.Clear();
foreach (ActionsEntryAction ae in entry.Action)
{
string point = ae.X.ToString() + "," + ae.Y.ToString();
string interval = (ae.interval).ToString("F6");
ListViewItem lvi = new ListViewItem(new string[] { point, ((ClickType)(ae.Type)).ToString(), interval, ae.Text });
ActionEntry acion = new ActionEntry(ae.X, ae.Y, ae.Text, ae.interval, (ClickType)(ae.Type));
lvi.Tag = acion;
lvActions.Items.Add(lvi);
}
if (runIt)
{
btnStart.PerformClick();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Clicer", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
EDIT
XML:
<?xml version="1.0" encoding="utf-8"?><ActionsEntry xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Action>
<X>824</X>
<Y>456</Y>
<Text />
<interval>22,555555</interval>
<Type>0</Type>
</Action>
</ActionsEntry>
Пытались ли вы изменить CultureInfo? –
Не знаю, что это такое ... – JustinasT
Посмотрите на этот вопрос: http://stackoverflow.com/questions/17437946/xml-deserialization-crashes-on-decimal-parse-due-to -форматирование. Думаю, у него есть ответ, который вы ищете. –