.NET APP
У меня есть приложение MVC 4.5 с контроллером Api, которое возвращает документ XML.Это выглядит примерно так:
namespace App.Controllers
{
public class GetDataController : ApiController
{
public IEnumerable<MyStruct> Get()
{
//code to build IEnumerable<MyStruct> ReturnList goes here...
return ReturnList;
}
}
}
POWERSHELL
Когда я запускаю приложение, я вижу, что XML правильно отображается в браузере.
Я могу получить веб-контент в виде строки с powershell с помощью:
$doc = (New-Object System.Net.WebClient).DownloadString("http://localhost:PORT#/api/...")
Возвращенная строка выглядит следующим образом:
[{"Prop1":"Value1","Prop2":"Value2"},{"Prop1":"Value1", "Prop2":"Value2"}]
![enter image description here](https://i.stack.imgur.com/pTAay.png)
ОШИБКА
Однако я получаю ошибку при попыткепреобразовать эту строку в xml через
$xmlDoc = [xml]$doc
Ошибка гласит:
Data at the root level is invalid. Line 1, position 1.
![enter image description here](https://i.stack.imgur.com/INpf4.png)
Я ПЫТАЛСЯ ИСПОЛЬЗОВАТЬ:
(New-Object System.Net.WebClient).DownloadFile($xmlURL,'c:\temp\file.xml')
$xmlSchedule = [xml](Get-Content 'c:\temp\file.xml')
, а также
$bomutf8=[system.text.Encoding]::UTF8.GetPreamble()
if(($a=(New-Object System.Net.WebClient).Downloadstring($xmlURL)).startsWith($bomutf8))
{
[xml]$a=$a.remove(0,$bomutf8.length)
}
ВОПРОС
Какможно обойти эту ошибку?В идеале я хотел бы исправить эту ошибку на стороне сервера, чтобы конечные пользователи не сталкивались с такой же проблемой.