Ошибка при чтении *.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); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д