Является ли хорошей идеей использовать XML и XSLT для веб-сайтов? - PullRequest
4 голосов
/ 13 мая 2009

Мне интересно, приносит ли это преимущества или недостатки при использовании XML-документа для содержимого веб-страницы и XSLT для управления отображаемой частью, а не при использовании простого HTML.

Первое условие в моих глазах - поддержка браузером XML и XSLT. Но, насколько я знаю, ни у одного современного браузера с этим нет проблем. (Поправь меня, если я ошибаюсь.)

Но есть ли, например, преимущества (семантическая сеть и т. Д.) Или потери (тэги HTML чаще встречаются) в рейтинге поисковых систем?

Или вы видите другие причины, по которым следует или не следует использовать комбинацию XML и XSLT для веб-страниц?

Связанный:

Почему стоит выбрать XSL-преобразование?

Есть ли смысл создавать сайт с использованием XSLT

Ответы [ 11 ]

5 голосов
/ 13 мая 2009

Лично я бы не стал использовать clientide xslt очень часто; есть проблемы с поддержкой браузера и тот факт, что у вас могут быть данные в xml, которые вам нужно удалить (т. е. что клиент не должен знать или не должен знать).

Но на стороне сервера ... несколько лет назад я обычно использовал этот подход в качестве реализации MVC из VB6 - т.е. код VB6 (контроллер) собирает данные в виде XML (модель) и использует xslt для формирования HTML (вид). Это работало хорошо с точки зрения разделения проблем. В эти дни я использовал бы ASP.NET MVC, чтобы сделать то же самое, но с шаблонами представления ascx / aspx.

5 голосов
/ 21 ноября 2011

Это ОЧЕНЬ важная тема. 10 лет назад люди начали задавать эти вопросы ..... можем ли мы отправлять пакеты данных в браузеры и сделать так, чтобы браузер отображал содержимое? Причина, по которой цель разработки так важна, состоит в том, чтобы решить проблему, с которой мы сталкиваемся сегодня… Различные типы устройств и планшетов, которые не полностью поддерживают настольную модель просмотра. XHTML унес нас так далеко ... теперь ECMAScripting - это то, что люди пытаются создать, чтобы сделать такую ​​вещь. Но это очень плохая модель в долгосрочной перспективе. Это нарушает целенаправленную разметку и контент в сети.

Ответ ДА ​​.... вы можете создавать системы типов XSL / XSLT / XML. Вы можете отправить пакет XML и со ссылкой на его таблицу стилей XSLT, и большинство, если не все современные браузеры анализируют файл в разметке на клиенте. Я сделал это, и это работает невероятно быстро.

Теперь упомянутые группой ничьи являются реальными. Существуют проблемы с тем, как браузеры анализируют XSLT, а затем воспроизводят, скажем, элементы сценариев и кэширование устаревшего XML и т. Д. Существуют реальные проблемы с взаимодействием с командами разработчиков и обучением абстрагированию контента, дизайна и структуры в эти типы частей. Но это реальная цель Интернета в долгосрочной перспективе, и поэтому XSL был спроектирован таким, каким он был. Его сила заключается в отделении структуры, данных и дизайна, а также в освобождении как сервера, так и клиента от рабства контента, привязанного к элементам дизайна. Решения Javascripted, скомпилированные и размещенные в пользовательском интерфейсе, не помогли, но сделали его еще хуже, потому что дизайн разметки и данные часто объединяются. Я бы посоветовал всем новым веб-разработчикам начать рассматривать решение XSLT / XML, потому что конечной целью является возможность сосредоточиться на доставке данных XML целому ряду клиентов BEYOND-браузеров для настольных ПК. Если у вас есть XSLT / CSS, предназначенный для целого ряда различных устройств, и XML - это все, что отправляется за пределы кэширования вашим клиентам, у вас есть очень простая, быстрая и мощная система доставки данных, которая выходит за рамки того, что используется в текущем настольном приложении / Веб-сайты на базе настольных браузеров теперь дают нам и открывают действительно расширяемый и мощный период доставки данных для Интернета. Итак, я говорю да, попробуйте XSLT!

4 голосов
/ 19 ноября 2010

Вот пример веб-сайта на основе xsl.

http://www.skechers.com.

Достаточно сказано

2 голосов
/ 13 мая 2009

Вы должны выполнить преобразование на стороне сервера и не полагаться на поддержку браузера.

Мы используем его для поддержки нескольких языков на нашем сайте. Недостатком является то, что иногда наши дизайнеры имеют крутой курс обучения при разработке своих страниц с использованием XSL / XSLT / XPATH.

1 голос
/ 13 мая 2009

(поскольку я пока не могу комментировать, это был ответ на "Сен-Жербиль")

На самом деле вы можете использовать элементы управления ASP.NET в XSL, и это очень просто: добавить пространство имен asp в XSL, выполнить преобразование в stringwriter, затем проанализировать элементы управления в преобразованной строке:

// Transform
xsltrans.Transform(xmldoc, xslArg, oSW);

// Get transformed content
string sPage = oSW.ToString();

// Add to page
Page.Controls.Clear();
Page.Controls.Add(Page.ParseControl(sPage));

Это проанализирует все элементы управления ASP.NET внутри преобразованного содержимого.

0 голосов
/ 16 марта 2010

Я никогда не слышал, чтобы кто-то еще делал это, но я использую XSLT как что-то вроде макроязыка для языка шаблонов HTML на основе XML. Я не использую это для крупномасштабных преобразований из одного документа в другой, а скорее для по сути пользовательских тегов. Шаблоны запускаются через xslt перед компиляцией, поэтому им не нужно фактически манипулировать данными. Однако он предоставляет способ просто использовать кусок xml максимально лаконично, а затем выполнить очень простое преобразование для вывода кода таким способом, который будет невозможен или, по крайней мере, более труден для выполнения на самом языке шаблонов.

В html часто возникает необходимость вкладывать div, добавлять классы и т. Д., Чтобы он выглядел правильно, без добавления какого-либо реального значения. Вместо того, чтобы повторять этот шаблон повсюду, просто создать пользовательский элемент, а затем написать простое преобразование XSLT, чтобы взять этот элемент и его атрибуты и превратить его в полностью развернутый HTML. Однако я бы никогда не мечтал об использовании XSLT в качестве единственного средства шаблонизации данных. Просто слишком волосато.

0 голосов
/ 13 мая 2009

Мне пришлось использовать клиентский XSL (T) на моей домашней странице, чтобы запретить freehoster автоматически вставлять рекламу ;-) (IE и Firefox имели проблемы с этим!)

Я бы использовал XML на стороне сервера, но никогда не передавал ничего, кроме простого XHTML + CSS. Для Интернета важно, чтобы все было построено на одной технологии, а не на тысячах личных языков и семантики.

0 голосов
/ 13 мая 2009

Я иногда использую XML для случая, когда на веб-сайте нет базы данных MySQL или просто для записи небольшого массива элементов (который нужно много менять), а затем использую PHP для анализа его на моих веб-страницах с HTML /CSS.

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

0 голосов
/ 13 мая 2009

Если вы сравните его с мощностью кода на стороне сервера, XSLT не соответствует нескольким параметрам.

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

Редко необходимо исключительно преобразовывать HTML на клиенте, полностью полагаясь на возможности браузера. Большинство современных браузеров имеют хорошую поддержку XML / XSLT, но их основное отличие заключается в типе используемого процессора XSLT.

0 голосов
/ 13 мая 2009

Это прекрасный способ работы, но, к сожалению, многие серверные технологии не поддерживают эту идею.

Например, в ASP.NET вы не можете использовать элементы управления сервером с таким подходом, которого обычно достаточно, чтобы отключить людей.

XSLT отлично подходит для страниц, которые не взаимодействуют, например, для отчетов.

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