Закрытие HTML-тегов

Rimen

Client
Регистрация
28.10.2019
Сообщения
406
Благодарностей
253
Баллы
63
Всем привет!
Задача простая: нужно проверять все ли html-теги закрыты в переменной, и если нет — закрывать их.
Полез за подсказкой к ChatGPT, он сказал что для реализации этой задачи можно использовать стандартную библиотеку .NET для обработки HTML - HtmlAgilityPack

Дальше предлагает такой код:


Саму конструкцию для c#-кубика в таком виде:
C#:
string html = "<p>Some text <div>Some other text";
string resultHtml = CloseAllOpenTags(html);
Console.WriteLine(resultHtml); // Вывод: <p>Some text </p><div>Some other text</div>
Несколько вопросов:
1. как-то нужно устанавливать библиотеку HtmlAgilityPack? или её можно в using добавить и всё?
если нужно -- ткните пожалуйста как это делать (Visual Studio не пользуюсь совсем)

2. ChatGPT подсказал такой код:
C#:
using HtmlAgilityPack;
public string CloseAllOpenTags(string html)
{
    var doc = new HtmlDocument();
    doc.LoadHtml(html);

    // Этот метод автоматически закрывает все открытые теги
    doc.OptionWriteEmptyNodes = true;

    return doc.DocumentNode.OuterHtml;
}
его во вкладку "Общий код" или "Директивы Using" ?
3. Возможно кто-то из вас знает другие, подходящие решения для зеннопостера ?
 

Rimen

Client
Регистрация
28.10.2019
Сообщения
406
Благодарностей
253
Баллы
63
UPD:
1. скачал отсюда https://www.nuget.org/packages/HtmlAgilityPack/ .nupkg

2. из папки Net40 внутри htmlagilitypack.1.11.46.nupkg достал HtmlAgilityPack.dll и положил его в папку C:\Program Files\ZennoLab\RU\ZennoPoster Pro V7\7.7.3.0\Progs

3. в "Ссылки из GAС" добавил HtmlAgilityPack (из файлика в шаге 2) скрин

4. В "Общий код" добавил:

C#:
using HtmlAgilityPack;

public class HtmlHelper
{
    public string CloseAllOpenTags(string html)
    {
        HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
        doc.LoadHtml(html);

        // Этот метод автоматически закрывает все открытые теги
        doc.OptionWriteEmptyNodes = true;

        return doc.DocumentNode.OuterHtml;
    }
}
скрин

сам кубик выглядит так:
C#:
HtmlHelper htmlHelper = new HtmlHelper();
string html = "<p>Some text <div>Some other text";
string resultHtml = htmlHelper.CloseAllOpenTags(html);
Ошибку получаю такую:
[Общий код: Строка: 36; Cтолбец: 4] Не удалось загрузить файл или сборку "HtmlAgilityPack, Version=1.8.5.0, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a" либо одну из их зависимостей. Найденное определение манифеста сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)

Вопрос: что не так?

проект прикрепил на всякий случай
 

Вложения

  • 10,7 КБ Просмотры: 2
Последнее редактирование:

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113

Rimen

Client
Регистрация
28.10.2019
Сообщения
406
Благодарностей
253
Баллы
63
взял и затер системную dll зенки :bk:
ой...
1. это точно?
2. так нельзя делать? только из других папок добавлять .dll в "Ссылки из GAС"
3. как её теперь можно восстановить?

для меня эти ваши юзинги, сторонние библиотеки и внешние ссылки... брр
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
ну если dll не бэкапил, то зенку надо переустановить.
HtmlAgilityPack.dll уже есть в зенке. надо только в GAС добавить из C:\Program Files\ZennoLab\RU\ZennoPoster Pro V7\7.7.3.0\Progs , тогда конфликтов не будет с версиями.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
а не... наврал с 3 короба... даже больше :bk:
перепутал с другой dll
C:\Program Files\ZennoLab\RU\ZennoPoster Pro V7\7.7.2.0\Progs\ExternalAssemblies сюда надо добавить HtmlAgilityPack.dll и потом отсюда в GAС и в юзинги
 
  • Спасибо
Реакции: djaga

Rimen

Client
Регистрация
28.10.2019
Сообщения
406
Благодарностей
253
Баллы
63
то есть зенку не надо переустанавливать? :ah:
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113

Rimen

Client
Регистрация
28.10.2019
Сообщения
406
Благодарностей
253
Баллы
63
вот же есть тема https://zennolab.com/discussion/threads/kak-s-pomoschju-s-zakryt-vse-html-tegi.38358/
там вроде все нормально у всех получилось
Спасибо что ткнул. Оказывается я раньше бывал в этой ветке, но тогда не получилось, забил (не так надо было видимо).
Сейчас решил с другой стороны зайти и пошел в ChatGPT... а оказалось нужно было все-го то в старую ветку на форуме зайти.
в общем получилось. Пламенная благодарочка за помощь :bt:
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)