在简单的WP8应用程序中使用XML时出错

时间:2014-03-03 23:10:03

标签: c# dom xpath windows-phone-8

我的代码是:

namespace MyNSpace
{
    public partial class MainPage : PhoneApplicationPage
    {
        public MainPage()
        {
            InitializeComponent();
        }

        async private void ButtonParse_Click(object sender, RoutedEventArgs e)
        {
            HttpClient client = new HttpClient();
            var doc = new HtmlAgilityPack.HtmlDocument();
            string url = "www.mysite.com";
            string html = await client.GetStringAsync(url);
            doc.LoadHtml(html);
            HtmlNodeCollection tl = doc.DocumentNode.SelectNodes("//div[@class=\"photo\"]/a/img");
            //I must still write this part
        }
    }
}

我在var doc = new HtmlAgilityPack.HtmlDocument();行上收到此错误:

  

类型'System.Xml.XPath.IXPathNavigable'在程序集中定义   没有引用。您必须添加对程序集的引用   'System.Xml.XPath,Version = 2.0.5.0,Culture = neutral,

为什么呢?我读到如果他们没有手动加载某个System.Xml.XPath.dll并编写Using行,则会遇到此问题。如果我尝试手动导入DLL,我会收到一个错误,我正在尝试添加对不兼容的程序集的引用。这是我第一次为Windows Phone编程,所以如果这是一个小问题我也不会感到惊讶。

1 个答案:

答案 0 :(得分:0)

确保添加了对System.Xml.XPath.dll的Silverlight版本的引用。这需要在Windows Phone Project中使用HtmlAgilityPack。

我仅使用Windows Phone 7.5测试过,但基于this article,它似乎也适用于Windows Phone 8项目(请参阅文章元数据> 兼容性 该链接中的平台部分)。就我而言,.dll位于此路径中:

C:\Program Files (x86)\Microsoft SDKs\Silverlight\v4.0\Libraries\Client