Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Windows Phone 8.0 Silverlight应用程序&;处理缺失元素的HTMLAgilityPack_C#_Xaml_Windows Phone 8_Html Agility Pack - Fatal编程技术网

C# Windows Phone 8.0 Silverlight应用程序&;处理缺失元素的HTMLAgilityPack

C# Windows Phone 8.0 Silverlight应用程序&;处理缺失元素的HTMLAgilityPack,c#,xaml,windows-phone-8,html-agility-pack,C#,Xaml,Windows Phone 8,Html Agility Pack,在Windows Phone 8.0 Silverlight应用程序中使用HttpClient和Htmlagibility pack 我想知道如何管理一个异常,其中一个节点/图像不包含在HTML的某个部分中 例如,这是我从中获取信息的HTML的一个片段 <PARENT> <div class="game-c"> <div class="boxshot"> <img class="cover" src="ht

在Windows Phone 8.0 Silverlight应用程序中使用HttpClient和Htmlagibility pack

我想知道如何管理一个异常,其中一个节点/图像不包含在HTML的某个部分中

例如,这是我从中获取信息的HTML的一个片段

<PARENT>
    <div class="game-c">
        <div class="boxshot">
            <img class="cover" src="http://cover_source" />
        </div>
        <h3 class="h3 white-c">Game Title ...</h3>
        <p>Game description goes here...</p>
        <p>...</p>
        <div class="cta-signedOut">...</div>
        <div class="cta-signedIn">
            <a href="https://link.to.store"> 
            <img src="gameImage.gif" /></a>
        </div>
    </div>
</PARENT>
多谢各位

2016年3月27日-增加以下内容:

我正在使用以下代码,但它不会加载本地映像

我正在尝试以下方法,但不起作用

var img = div.SelectSingleNode("div[@class='cta-signedIn']/a/img");
var img2 = ("/Assets/Images/storeLogo_unavailable.png");
if (img == null)
{
    newGame.StoreLink = img2;
}
else
{
    newGame.StoreLink = div.SelectSingleNode("div[@class='cta-signedIn']/a/img").Attributes["src"].Value;
}

此外,由于某些原因,此代码执行速度非常慢。有什么特别的原因吗?

如果您只是想检查映像的存在并相应地执行一些逻辑,那么您可以检查
SelectSingleNode()
给定的映像选择器是否返回
null
。例如,假设
div
引用HTML片段中的外部
div

var img = div.SelectSingleNode("div[@class='cta-signedIn']/a/img");
if(img != null)
{
    //TODO: do something with `img`
}
else
{
    //TODO: use local image file
}

顺便说一句,我在上面的代码片段中建议了一个可能更有意义的选择器。元素位置索引通常意义不大。

如果您只是想检查图像的存在性并相应地执行一些逻辑,那么您可以检查图像的给定选择器是否返回
null
。例如,假设
div
引用HTML片段中的外部
div

var img = div.SelectSingleNode("div[@class='cta-signedIn']/a/img");
if(img != null)
{
    //TODO: do something with `img`
}
else
{
    //TODO: use local image file
}

顺便说一句,我在上面的代码片段中建议了一个可能更有意义的选择器。元素位置索引通常意义不大。

“理想情况下,当注释掉这两个div时,我希望使用我自己的图像文件,该文件位于/Assets/Images/Unavailable.png中的本地位置。”。用你自己的图片做什么?好吧,我想你只是想检查一下图片的存在,然后做一些相应的逻辑处理……对不起,如果我在我原来的帖子中含糊不清的话。在主页中,我有一个绑定到上面节点内容的图像。当HTML同时存在“cta signedOut”和“cta signedIn”时,图像将是“cta signedIn”中src的图像。但是,在第二个示例中,缺少两个“cta”类,我希望图像由一个本地类填充。希望这能澄清我的问题。感谢到目前为止的帮助。“理想情况下,当这两个div被注释掉时,我想使用我自己的图像文件,该文件位于本地的/Assets/Images/Unavailable.png中”。用你自己的图片做什么?好吧,我想你只是想检查一下图片的存在,然后做一些相应的逻辑处理……对不起,如果我在我原来的帖子中含糊不清的话。在主页中,我有一个绑定到上面节点内容的图像。当HTML同时存在“cta signedOut”和“cta signedIn”时,图像将是“cta signedIn”中src的图像。但是,在第二个示例中,缺少两个“cta”类,我希望图像由一个本地类填充。希望这能澄清我的问题。感谢到目前为止的帮助。很好的代码示例,它可以从网站上获得正确的图像。但是,如何将本地文件加载到img?如果您进行搜索,SO中已经有很多这样的问题(没有尝试过任何一个)。这是一个例子:伟大的代码示例,它可以从网站上获得正确的图像。但是,如何将本地文件加载到img?如果您进行搜索,SO中已经有很多这样的问题(没有尝试过任何一个)。这是一个例子:
var img = div.SelectSingleNode("div[@class='cta-signedIn']/a/img");
if(img != null)
{
    //TODO: do something with `img`
}
else
{
    //TODO: use local image file
}