Извлечение изображения с помощью CsQuery и последующая вставка его перед тегом заголовка

#asp.net-mvc #vb.net #html #csquery

#asp.net-mvc #vb.net #HTML #csquery

Вопрос:

Я пытался использовать HtmlAgilityPack для обработки некоторого Html. Я решил также попробовать CsQuery.

Цель состоит в том, чтобы извлечь тег img и его src и повторно вставить его перед тегом h3.

Предположим, что html:

  <div class="col-md-6">
            <div class="item">
                <div class="content galleryItem">
                    <h3>
                        Al Shabaab kill at least 29 in latest attacks on Kenyan coast                            
                    </h3>           
                   <p> <img alt src="../../../../images/AlShabaab.jpg"></p>
<p>
    Al Shabaab killed at least 29 people in two coastal areas of Kenya.</p>

                </div>
            </div>
        </div>
  

Цель состоит в том, чтобы переместить изображение перед h3

Я использовал следующее, чтобы удалить стиль attr из тегов img:

    Dim csq = CQ.Create(input)
   Dim csstyle = csq("img")
   Return csstyle.RemoveAttr("style")
  

Ответ №1:

Поскольку вы явно не отметили это VB.NET Я отвечу на C #, надеюсь, все в порядке:

 var cq = CQ.create(input); // create the CsQuery source
var img = cq["img"]; // image here, img["src"] is its source
img.Remove().InsertBefore(cq["h3"]);// remove it, and add it in front of H3.
  

конечно, этот код может быть короче, но я хотел, чтобы код соответствовал вашему буквальному описанию.

Комментарии:

1. Думаю, не совсем сработало, потому что img обернуто тегами p, о которых я забыл упомянуть.

2. Для протокола Изменение вопроса после получения ответа считается несколько невежливым в Stack Overflow. Тем не менее, приведенный выше код все еще должен работать, и я только что протестировал его. Не забудьте выполнить рендеринг по завершении обработки.