HtmlAgilityPackを使用したアセンブリエラー

c# html-agility-pack reference windows-phone-8.1 xpath

質問

私は、Webページから何かを取得し、それをユーザーに表示するアプリケーションを作成したいと考えています。このことをするために、私はHtmlAgilityPackを使用しました。私はプロジェクトへの参照を追加しました(v1.4.6.0、NuGetから)。私はユーザーが数年前に別の質問で投稿したコードを使用しました。

            HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument();
            // There are various options, set as needed
            htmlDoc.OptionFixNestedTags = true;

            // filePath is a path to a file containing the html
            htmlDoc.Load(filePath);
            if (htmlDoc.ParseErrors != null && htmlDoc.ParseErrors.Count() > 0)
            {
                // Handle any parse errors as required
            }
            else
            {
                if (htmlDoc.DocumentNode != null)
                {
                    HtmlAgilityPack.HtmlNode bodyNode = htmlDoc.DocumentNode.SelectSingleNode("//body");

                    if (bodyNode != null)
                    {
                        // Do something with bodyNode
                    }
                }
            }

私の問題は、私は次のエラーが発生することです:

'System.Xml.XPath.IXPathNavigable'型は、参照されていないアセンブリで定義されています。アセンブリ 'System.Xml.XPath、Version = 2.0.5.0、Culture = neutral、PublicKeyToken = 31bf3856ad364e35'への参照を追加する必要があります。

だから私は、次のDLLを使用して参照を追加しようとしました:

c:\ Program Files(x86)\ Microsoft SDKs \ Silverlight \ v5.0 \ Libraries \ Client \ System.Xml.XPath.dll

しかし、今回は次のエラーが表示されます(イタリア語のエラーが出るため翻訳されていますので正しい翻訳ではないかもしれません):

アセンブリに参照を追加することはできません互換性のないプロジェクトまたは上記のバージョン

私に何ができる?

人気のある回答

Windows Phone 8.1のストアアプリのHtmlAgilityPack(HAP) はWindows 8ストアアプリのHAPに似たXPathをサポートしていないようです

この場合、XPath APIではなくHAPのLINQ APIを使用できます。たとえば、次のようになります。

......
if (htmlDoc.DocumentNode != null)
{
    HtmlAgilityPack.HtmlNode bodyNode = doc.DocumentNode
                                           .DescendantsAndSelf("body")
                                           .FirstOrDefault();
    if (bodyNode != null)
    {
        // Do something with bodyNode
    }
}
......

Windows Phone Silverlightアプリプロジェクトが実際にあっても、LINQ APIはまだ解決策の可能性があります。



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ