我到处寻找答案,但迄今为止没有回答我的问题.对于我正在制作的应用程序,我需要从Bukkit.org获取最新的XML工件.现在,如果我手动(通过我的浏览器)保存XML工件然后将其加载到我的程序中,它可以正常工作,给我预期格式化的XML文件.
但是,如果我使用WebClient访问该文件,我会遇到问题,因为Webclient下载的文件甚至不是XML格式.我在下面放了一个测试用例.
static void manualLoad()
{
//local copy
XDocument doc = XDocument.Load("artifacts.xml");
var lol = doc.Descendants("build_number");
foreach (XElement e in lol)
{
Console.WriteLine(e.Value); //correct output
}
}
static void onlineLoad()
{
WebClient client = new WebClient();
//save to local project folder
client.DownloadFile(new Uri("http://dl.bukkit.org/api/1.0/downloads/projects/bukkit/artifacts/")
, "C:\\...\\XMLTest\\XMLTest\\bin\\Debug\\lol.xml");
XDocument doc = XDocument.Load("lol.xml"); //error thrown!
}
static void Main(string[] args)
{
manualLoad(); //works!
onlineLoad(); //throws XMLexception: Data at root level is invalid.
Console.ReadKey();
}
Run Code Online (Sandbox Code Playgroud)
我试图访问的XML工件是:Bukkit.org XML Artifact