为什么XDocument.Parse抛出NotSupportedException

本文关键字:NotSupportedException 抛出 Parse XDocument 为什么 | 更新日期: 2023-09-27 18:19:33

我正在尝试使用XDocument.parse wchich抛出NotSupportedException,就像主题中一样:XDocument.Sarse在WindowsPhone7中不同吗?我根据发布的建议更新了代码,但仍然无济于事。不久前,我使用类似(但更简单)的方法解析RSS,效果很好。

public void sList()
        {
            WebClient client = new WebClient();
            client.Encoding = Encoding.UTF8;
            string url = "http://eztv.it";
            Uri u = new Uri(url);
            client.DownloadStringAsync(u);
            client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted);

        }
    private void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
    {
        try
        {
            string s = e.Result;
            s = cut(s);
            XmlReaderSettings settings = new XmlReaderSettings();
            settings.DtdProcessing = DtdProcessing.Ignore;

            XDocument document = null;// XDocument.Parse(s);//Load(s);
            using (XmlReader reader = XmlReader.Create(new StringReader(e.Result), settings))
            {
                document = XDocument.Load(reader); // error thrown here
            }
            // ... rest of code
        }
        catch (Exception ex)
        {
            MessageBox.Show( ex.Message);
        }
    }
    string cut(string s)
    {
        int iod = s.IndexOf("<select name='"SearchString'">");
        int ido = s.LastIndexOf("</select>");
        s = s.Substring(iod, ido - iod + 9);
        return s;
    }

当我用字符串s代替时

//string s = "<select name='"SearchString'"><option value='"308'">10 Things I Hate About You</option><option value='"539'">2 Broke Girls</option></select>";

一切正常,没有任何异常,那么我做错了什么呢?

为什么XDocument.Parse抛出NotSupportedException

有一些特殊的符号,如'&'在CCD_ 1中。

我只是试着用HttpUtility.HtmlEncode()XDocument将这些符号(除"<','>','"'外的所有符号)替换为

UPD:

我不想展示我的代码,但你没有给我任何机会:)

 string y = "";
 for (int i = 0; i < s.Length; i++)
 {
      if (s[i] == '<' || s[i] == '>' || s[i] == '"')
      {
           y += s[i];
      }
      else
      {
           y += HttpUtility.HtmlEncode(s[i].ToString());
      }
 }
 XDocument document = XDocument.Parse(y);
 var options = (from option in document.Descendants("option")
      select option.Value).ToList();

这是我在WP7上的工作请不要使用此代码进行html转换。我写得很快只是为了测试目的

相关文章:
  • 没有找到相关文章