HTML-рендеринг с C # - PullRequest
       7

HTML-рендеринг с C #

4 голосов
/ 12 февраля 2010

Допустим, я сумасшедший и хочу реализовать базовый движок рендеринга HTML с помощью c #. Я хотел бы использовать элементы управления WPF для отображения макета HTML.

Хотя с такой идеей ничего нельзя получить, я все же хочу опробовать ее! Итак, какие библиотеки, проекты и документация помогут мне сделать это?

Ответы [ 4 ]

3 голосов
/ 12 февраля 2010

Поскольку возможности WPF XAML представляют собой расширенный набор возможностей HTML, почти все, что вам нужно сделать, - это сопоставить одно с другим.

Если вы вводите XHTML, вы можете просто использовать XSLT или LINQ-to-XML для получения данных.

Если вы используете XSLT, вы получите XAML, который вы анализируете с помощью XamlReader.Parse (), чтобы получить UIElement, который вы можете добавить в свое окно или другой контейнер WPF. Вероятно, это больше, чем использование LINQ-to-XML, потому что XSLT относительно ограничен.

Если вы используете LINQ-to-XML, вы можете создать XAML, а затем проанализировать его, как в случае XSLT, или вы можете просто создать дерево объектов напрямую. Если вы создаете XAML с использованием LINQ-to-XML, я бы написал реальный код перевода в VB.NET вместо C #, который является моим обычным предпочтительным языком. Синтаксис VB.NET «XML Literal» облегчает эту часть работы.

Если вы вводите произвольный HTML, а не XHTML, я бы использовал стороннюю библиотеку, чтобы преобразовать ее в XHTML и работать оттуда. Обработка всех странностей, связанных с анализом HTML, - это большая работа, и, вероятно, в основном она не связана с вашей реальной целью.

Если вы просто хотите отобразить HTML, не превращая его в объекты WPF, вы можете использовать элемент управления Frame.

1 голос
/ 14 июля 2010

Рендеринг html будет простым, просто конвертируйте его в файл xaml, и рендеринг должен быть довольно быстрым. Вы получите ускоренный браузер HW с красивым масштабированием и шрифтами.

Но как вы справляетесь с CSS - вам нужно будет создавать стили (Yuck)? DHTML, HTML5 и Java-скрипт. Так много страниц сейчас требуют этого, что вы даже не можете их просмотреть.

Самый простой способ для сценария Java - использовать синтаксический анализатор, который все используют, может быть, есть лучший способ (и сценарий Java для компиляторов CIL?)

0 голосов
/ 07 ноября 2014

Я думаю, что этот проект - именно то, к чему вы стремитесь:
https://htmlrenderer.codeplex.com/
Может быть, вы могли бы поработать над этим и добавить поддержку HTML 5 и CSS 3!

0 голосов
/ 12 февраля 2010

парсеры html, с типизированным отображением альтернатив xaml, интересно ... возможно, вы можете использовать antlr для лексера синтаксического анализатора http://www.antlr.org/, более конкретно, вот интересный проект кода, проект http://www.codeproject.com/KB/cs/TagBasedHtmlParser.aspx,, который вы могли бы, возможно, попробуйте превратить ваш HTML в XAML, что было бы довольно интересно:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...