Подтвердить что ты не робот

XmlDocument.Load Vs XmlDocument.LoadXml

Я столкнулся с проблемой, используя XmlDocument.LoadXml.

Приложение сработало, получив следующую ошибку:

"Данные на корневом уровне недопустимы. Строка 1, позиция 1"

После проверки XML и поиска ничего плохого в нем я немного искал Google и нашел подсказку, чтобы использовать XmlDocument.Load вместо XmlDocument.LoadXml.

Я пробовал, и он отлично работает.

Мой вопрос: в чем разница между двумя методами и тем, что могло заставить работать, а другое - провалиться?

4b9b3361

Ответ 1

XmlDocument.Load используется для загрузки XML из потока, TextReader, пути /URL или XmlReader. XmlDocument.LoadXml используется для загрузки XML, содержащегося в строке.

Это принципиально разные способы загрузки XML, в зависимости от того, где фактически хранится XML. Похоже, вы использовали неправильный метод для вашего XML.

Ответ 2

Вы пытались использовать XmlDocument.LoadXml и передавали имя файла? Он этого не делает - он предполагает, что строка, которую вы передаете, является XML. Таким образом, вы можете использовать:

doc.LoadXml("<root><child /><root>");

или

doc.Load("myfile.xml");

Если это не поможет, можете ли вы показать свой неудачный и рабочий код? Существуют различные способы, с помощью которых можно было изменить LoadXml на Load...

Ответ 3

Предполагая, что вы правильно используете XmlDocument.Load и XmlDocument.LoadXml, эта проблема может быть вызвана "Оценка байта" .

Этот другой вопрос может быть полезен.

Ответ 4

Загрузка() загружается из определенного источника, тогда как LoadXml() загружается непосредственно из строки

Ответ 5

Сбой приложения со следующей ошибкой: "Данные на корневом уровне недействительны. Строка 1, позиция 1" Я подозреваю, что у xml-данных нет корневого уровня: например:

<area id="1">
  <candidate id="0">dataata</candidate>
</area>
<area id="2">
  <candidate id="0">dataataa</candidate>
</area>

вам нужно иметь хотя бы один уровень корня сверху нижних уровней. например:

<areas>
  <area id="1">
    <candidate id="0">dataata</candidate>
  </area>
  <area id="2">
    <candidate id="0">dataataa</candidate>
  </area>
</areas>

поэтому, пожалуйста, положите одну маму на вершину своего уровня, сделайте ее величественной матерью всех детей.