Ошибка при чтении *.xml документа - Знак "0", шестнадцатеричное значение 0x30, не может стоять в начале имени - C#
Формулировка задачи:
Доброго времени суток !
При использовании следующей конструкции:
Или этой:
Выдает ошибку Знак "0", шестнадцатеричное значение 0x30, не может стоять в начале имени., строка 129, позиция 4.
Вот отрывок из самого документа:
Что делать в этом случае ?
Я конечно, понимаю, что в последней строчке имеется значени 00040002, и он ругается именно на него. Но как быть ?
P.S. Структура .xml создаю не сам, так что работаю только с тем, что есть.
Благодарен всем за оказанную помощь !
XDocument xd = XDocument.Load(filepath);
XmlDocument xd = new XmlDocument();
xd.Load(filepath);<SNGui ModuleName = "Пользовательский интерфейс">
<CheckPassStat value = "0"/>
<CheckPassStatPacketCount value = "0"/>
<CheckPassStatAvgPacketSize value = "0"/>
<CheckPassStatPacketsPerSec value = "0.000"/>
<CheckPassStatBytesPerSec value = "0.000"/>
<00040002 value = "MaxTime=9142 Count=1"/>
</SNGui>
Решение задачи: «Ошибка при чтении *.xml документа - Знак "0", шестнадцатеричное значение 0x30, не может стоять в начале имени»
textual
Листинг программы
namespace Ghost
{
using System;
using System.Text.RegularExpressions;
using System.Xml.Linq;
class Program
{
static void Main(string[] args)
{
string xml = "<SNGui ModuleName = \"Пользовательский интерфейс\"> " +
" <CheckPassStat value = \"0\"/> " +
" <CheckPassStatPacketCount value = \"0\"/> " +
" <CheckPassStatAvgPacketSize value = \"0\"/> " +
" <CheckPassStatPacketsPerSec value = \"0.000\"/> " +
" <CheckPassStatBytesPerSec value = \"0.000\"/> " +
" <00040002 value = \"MaxTime=9142 Count=1\"/> " +
" </SNGui>";
string pattern = @"[<](?<nodeName>\d{8})\s+(?=value)";
Regex regex = new Regex(pattern);
string replacement = "<_${nodeName} ";
xml = regex.Replace(xml, replacement);
XDocument.Parse(xml);
}
}
}