HtmlNode Выберите img, где alt равно значению - PullRequest
0 голосов
/ 01 ноября 2019

Я хочу выбрать src изображения, где IMG alt равно заданному значению. Ниже я дал html, из которого я хочу извлечь изображение:

<div class="col-md-4 cush">
    <div class="col-xs-12 col-sm-6 col-lg-8">
        <div class="ps4 cush">
            <img src="https://website/assets/img/Anim-img/platforms/PS4-logo.png" alt=PS4 id="platformImage">
        </div>
    </div>
    <div class="col-xs-6 col-md-4">
        <img src="IMAGE_I_WANT_TO_GET" alt=The Alternative>
    </div>
</div>

Я пробовал следующее, которое, я думал, вернуло бы правильное значение:

        originalDetails.CoverImage = htmlNode.SelectNodes($"//img[contains(@alt, '{What i'm trying to match}')]")
              .Select(x => x.GetAttributeValue("src", ""))
              .FirstOrDefault();

Однако я получаюошибка Value cannot be null. Parameter name: source. Есть ли более простой способ получить источник изображения по тому, равно или нет alt изображение заданному значению?

1 Ответ

0 голосов
/ 01 ноября 2019

Для тех, кто хочет узнать, как я получил источник изображения, я сделал следующее:

// Get all the img tags in the node (two in this case) 
var images = htmlNode.Descendants("img").ToArray();

// Image source
// we know that we do NOT want the first image, just the second and that the first 
// attribute in that second image is the image source (what we want).
// So we get the 2nd image and the first attribute of that image
originalDetails.CoverImage = images[1].Attributes.FirstOrDefault().Value;

Я знаю, что это не самый лучший способ, но он выполняет свою работу.

...