繁体   English   中英

不支持URI格式错误流读取器

[英]URI formats are not supported Error streamreader

我正在尝试从URL解析XML,我的代码是

public List<docs> parsexml(string url, string siteType)
    {
        var docsList = new List<docs>();
        using (var xmlReader = new StreamReader(url))
        {
            var doc = XDocument.Load(url);
            XNamespace nameSpace = "/response/result/";
            var xmlProducts = doc.Descendants(nameSpace + "docs");

我不知道在流阅读器旁边使用什么。 有什么建议吗?

这应该工作:

Uri uri = new Uri("file:///c:/Test/file.xml");

WebResponse response = WebRequest.Create(uri).GetResponse();
using(Stream s = response.GetResponseStream()) {
    using (StreamReader sr = new StreamReader(s)) {
        var doc = XDocument.Load(sr);
        .........
    }
}

您应该可以只使用WebClient ,而无需进行太多代码更改。

public List<docs> parsexml(string url, string siteType)
{
    var docsList = new List<docs>();

    using (var client = new WebClient())
    using (var stream = client.OpenRead (url)) 
    {
        var doc = XDocument.Load(stream);
        XNamespace nameSpace = "/response/result/";
        var xmlProducts = doc.Descendants(nameSpace + "docs");
...

...或者,也许更好,您可以通过将URL传递给XDocument.Load();来简化它。

public List<docs> parsexml(string url, string siteType)
{
    var docsList = new List<docs>();

    var doc = XDocument.Load(url);
    XNamespace nameSpace = "/response/result/";
    var xmlProducts = doc.Descendants(nameSpace + "docs");

...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM