首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从url加载xml而不在C#中设置样式

从url加载xml而不在C#中设置样式
EN

Stack Overflow用户
提问于 2009-08-05 16:58:12
回答 3查看 1.8K关注 0票数 0

我试图从C#中的url加载xml,但问题是,xml文件附加了一个xsl,这意味着我没有得到xml文件的内容,而是使用xsl转换成的html。

有没有办法加载xml而不先转换它,这样我就可以得到xml的内容?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-08-06 17:03:02

URL中有".xml“并不意味着服务器会给您提供XML。对于您在示例中提供的URL,服务器将发出XHTML。(我也没有看到您在该文件的注释中提到的xml-stylesheet处理指令,这让我怀疑您是否看到了两个不同的东西。)在客户端,您无法改变这一点。如果有一种方法可以制定URL以从服务器获取原始XML,那么该站点上并没有提供这种方法。

它们似乎还提供了不是格式良好的XML的XHTML (根据您试图解析它时发生的情况来判断)。他们真不是太好了。

编辑:

好的,这里的罪魁祸首是这个站点显然会检查用户代理,以确定它是应该发送XML还是HTML。答案是here (为什么马丁·霍宁不在StackOverflow上?)演示了如何执行此操作:

代码语言:javascript
运行
复制
    string url = "http://eu.wowarmory.com/character-sheet.xml?r=Stormreaver&n=Sebassis";

    HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(url);
    httpRequest.UserAgent = @"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";

    using (HttpWebResponse httpResponse = (HttpWebResponse)httpRequest.GetResponse())
    {
        XmlDocument xmlDocument = new XmlDocument();
        xmlDocument.Load(httpResponse.GetResponseStream());
        Console.Write(xmlDocument.OuterXml);
    }

我希望我能告诉你为什么他们这样做,为什么这个用户代理工作,而其他人不工作,但这有点超出了我的专业领域。也许其他人可以对此有所了解。

票数 2
EN

Stack Overflow用户

发布于 2009-08-05 17:00:32

如果服务器在提供文件之前对其进行转换,则不能,您只能获得转换后的版本。但是,如果它只指定引用XSL样式表的处理指令,并且浏览器对其进行转换,则默认情况下将获得XML。

票数 0
EN

Stack Overflow用户

发布于 2009-08-05 17:21:56

您是否尝试过将HttpWebRequest对象的Accept属性设置为"text/xml"?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1234485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档