Xml.LoadData Данные на корневом уровне недействительны, строка 1, позиция 1. Существующие решения не помогают. ⇐ C#
-
Anonymous
Xml.LoadData Данные на корневом уровне недействительны, строка 1, позиция 1. Существующие решения не помогают.
Я пытаюсь сохранить XML-файл, созданный из строки, в локальную память в App_Data приложения веб-службы C#. Я получаю эту ошибку, несмотря на просмотр предыдущих решений стека:
Данные на корневом уровне недействительны. Строка 1, позиция 1.
Xml-файл, который я пытаюсь сохранить в файл, представляет собой простой список узлов.
Это тестируется с помощью приложения ASP.NET на локальном хосте. (может ли это потенциально повлиять на приложение веб-сервиса? Хотя я не вижу возможности, чтобы это было возможно)
Я попробовал реализовать решения из двух предыдущих вопросов:
[*]Первый [*]Второй
Вот первый код, который я попробовал
XmlDocument doc = новый XmlDocument(); вар xmlWithEscapedCharacters = SecurityElement.Escape(finalXML); //finalXML имеет строковый тип строка _byteOrderMarkUtf8 = Encoding.UTF8.GetString(Encoding.UTF8.GetPreamble()); if((xmlWithEscapedCharacters.StartsWith(_byteOrderMarkUtf8)) { вар LastIndexOfUtf8 = _byteOrderMarkUtf8.Length - 1; xmlWithEscapedCharacters = xmlWithEscapedCharacters.Remove(0, LastIndexOfUtf8); } doc.LoadXml(xmlWithEscapedCharacters); doc.PreserveWhitespace = true; doc.Save("Parks.xml"); Затем я попробовал это из второго решения
string _byteOrderMarkUtf8 = Encoding.UTF8.GetString(Encoding.UTF8.GetPreamble()); if(xmlWithEscapedCharacters[0] == '\ufeff') { вар LastIndexOfUtf8 = _byteOrderMarkUtf8.Length - 1; xmlWithEscapedCharacters = xmlWithEscapedCharacters.Remove(0, LastIndexOfUtf8); } Потом я даже подумал, что в начале файла может быть больше одной спецификации, и попробовал
string _byteOrderMarkUtf8 = Encoding.UTF8.GetString(Encoding.UTF8.GetPreamble()); while (xmlWithEscapedCharacters[0] == '\ufeff') { вар LastIndexOfUtf8 = _byteOrderMarkUtf8.Length - 1; xmlWithEscapedCharacters = xmlWithEscapedCharacters.Remove(0, LastIndexOfUtf8); } В результате произошла ошибка тайм-аута.
Я не понимаю, что мне кажется довольно простой проблемой.
РЕДАКТИРОВАТЬ 2 (неправильный XML-файл, извините): Вот пример допустимого XML-файла. Я добавляю узел с помощью этого кода.
978-0132309981 Внутреннее устройство операционных систем и принципы проектирования Уильям Задержки 480-965-0000 Прентис Холл 2011
Я пытаюсь сохранить XML-файл, созданный из строки, в локальную память в App_Data приложения веб-службы C#. Я получаю эту ошибку, несмотря на просмотр предыдущих решений стека:
Данные на корневом уровне недействительны. Строка 1, позиция 1.
Xml-файл, который я пытаюсь сохранить в файл, представляет собой простой список узлов.
Это тестируется с помощью приложения ASP.NET на локальном хосте. (может ли это потенциально повлиять на приложение веб-сервиса? Хотя я не вижу возможности, чтобы это было возможно)
Я попробовал реализовать решения из двух предыдущих вопросов:
[*]Первый [*]Второй
Вот первый код, который я попробовал
XmlDocument doc = новый XmlDocument(); вар xmlWithEscapedCharacters = SecurityElement.Escape(finalXML); //finalXML имеет строковый тип строка _byteOrderMarkUtf8 = Encoding.UTF8.GetString(Encoding.UTF8.GetPreamble()); if((xmlWithEscapedCharacters.StartsWith(_byteOrderMarkUtf8)) { вар LastIndexOfUtf8 = _byteOrderMarkUtf8.Length - 1; xmlWithEscapedCharacters = xmlWithEscapedCharacters.Remove(0, LastIndexOfUtf8); } doc.LoadXml(xmlWithEscapedCharacters); doc.PreserveWhitespace = true; doc.Save("Parks.xml"); Затем я попробовал это из второго решения
string _byteOrderMarkUtf8 = Encoding.UTF8.GetString(Encoding.UTF8.GetPreamble()); if(xmlWithEscapedCharacters[0] == '\ufeff') { вар LastIndexOfUtf8 = _byteOrderMarkUtf8.Length - 1; xmlWithEscapedCharacters = xmlWithEscapedCharacters.Remove(0, LastIndexOfUtf8); } Потом я даже подумал, что в начале файла может быть больше одной спецификации, и попробовал
string _byteOrderMarkUtf8 = Encoding.UTF8.GetString(Encoding.UTF8.GetPreamble()); while (xmlWithEscapedCharacters[0] == '\ufeff') { вар LastIndexOfUtf8 = _byteOrderMarkUtf8.Length - 1; xmlWithEscapedCharacters = xmlWithEscapedCharacters.Remove(0, LastIndexOfUtf8); } В результате произошла ошибка тайм-аута.
Я не понимаю, что мне кажется довольно простой проблемой.
РЕДАКТИРОВАТЬ 2 (неправильный XML-файл, извините): Вот пример допустимого XML-файла. Я добавляю узел с помощью этого кода.
978-0132309981 Внутреннее устройство операционных систем и принципы проектирования Уильям Задержки 480-965-0000 Прентис Холл 2011
Мобильная версия