Почему разметка HTML использования на языках как рубин, php, asp.net mvc вместо XLST для преобразования XML в HTML?

Я просто узнал о XLST на stackoverflow сегодня (я люблю, как в компьютерах можно программировать в течение многих лет и постоянно иметь 'штопку, как я не знал о той технологии' моменты). Я задаюсь вопросом, как популярный XLST это для веб-разработки? Я работал над несколькими веб-сайтами (использующий php, рубин и asp.net mvc), но я не веб-разработчик каким-либо образом.

Является причиной каждый веб-язык, который я упомянул выше, имеет свой собственный способ повысить HTML (и таким образом использовать в своих интересах 'шаблоны') только для создания этого более простым (более простой как в главном и не и более приспособленный определенная цель) в этом, Вы не должны сначала преобразовывать то, что Вы хотите отобразить к xml и затем к HTML? Или есть ли другие причины, почему XLST не кажется слишком популярным для веб-разработки? Или я являюсь просто сумасшедшим (снова, большая часть моей работы с Настольными приложениями), и на самом деле она широко используется на веб-страницах? Если не в разработке, для чего Вы главным образом используете его?

Кажется, что способность легко сериализировать объекты в xml с C# сделала бы XLST очень популярным способом отобразить объект в HTML на веб-сайтах?

Спасибо за питание моего любопытства!!

7
задан Evan 9 August 2010 в 01:53
поделиться

6 ответов

IMHO есть две основные причины, по которым XSLT не очень популярен:

  • он в целом сложен .
  • вы можете просто пропустить его и напрямую написать HTML, а HTML не сложен и имеет первоклассную поддержку со стороны всех веб-фреймворков.

Таким образом, обычно не хватает причин для введения еще одной абстракции. Абстракции не бесплатны, они решают одни проблемы, но вводят другие (т. Е. Адажио «решите это, добавив еще один косвенный уровень»), поэтому выгоды должны явно перевешивать затраты.

Тем не менее, существуют решения на основе XSLT для многих веб-фреймворков, например:

Вот отличная статья , в которой обсуждается XSLT для просмотра. двигатели.

8
ответ дан 6 December 2019 в 10:46
поделиться

Поскольку я начал так много ответов на Stackoverflow, это зависит :)

То, что вы описываете, - это добавление еще одного уровня абстракции между логикой приложения и выводом на дисплей; и введение другого языка. Для этого могут быть очень веские причины, но важно помнить, что вам нужно признать и количественно оценить потребность , чтобы понять, стоит ли оно того.

Кажется, что уметь легко ...

Как и в большинстве случаев в разработке программного обеспечения, то, что кажется простым после нескольких часов размышлений, оказывается довольно сложным и запутанным, когда вы на самом деле пытаетесь это сделать. Это особенно верно здесь, потому что я построил именно то, что вы описываете в ASP.NET. Он предоставляет очень интересный механизм для создания скинов для сайтов, поскольку вам просто нужно определить схемы XML вашей модели, и любой может написать XSLT для ее преобразования. Но XSLT похож на туннель с односторонним движением. Он не может (легко) протянуть руку назад или в стороны, чтобы вытащить дополнительную информацию, которая не была включена в исходную модель - так сказать, «периферийные данные». Фактически, ему трудно действительно осознавать, что вообще происходит в приложении.

Кроме того, XSLT очень многословен и (во многих смыслах) грубый язык. Это делает ... неприятным выполнение таких вещей, как циклы, и довольно трудоемким даже выполнение чего-то вроде оператора if-else *.XSLT, который генерирует что-то вроде, скажем, просматриваемой вами сейчас страницы, вероятно, будет состоять из нескольких тысяч строк, которые вы добавляете поверх кода приложения, который вы должны написать в любом случае.

Это просто дополнительные затраты, которые могут окупаться, а могут и не того стоить, в зависимости от того, чего вы пытаетесь достичь.

* Например, я однажды видел, как разработчик пытался написать элемент управления пейджером (например, «первая | предыдущая | 1 | 2 | 3 | следующая | последняя») в XSLT. Мы до сих пор время от времени навещаем ее в санатории.

4
ответ дан 6 December 2019 в 10:46
поделиться

XSLT не популярен в веб-платформах, потому что XML не популярен в веб-платформах. Но если у вас есть данные XML или вы хотите преобразовать свои объекты в XML, тогда XSLT - лучший инструмент для преобразования этого XML в HTML или XHTML.

Если вы используете ASP.NET checkout myxsl

3
ответ дан 6 December 2019 в 10:46
поделиться

Когда я впервые открыл для себя XSLT, я был в восторге, потому что мог писать семантически правильную презентационную разметку, и мне больше не нужно было писать так много хаков и использовать так много вложенных слоев , чтобы получить нужный эффект - XSLT мог сделать все это за меня!

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

Какой смысл, если можно просто писать HTML и не прибегать к дополнительному уровню абстракции? И если ваше приложение достаточно сложное, чтобы это оправдать, то есть много лучших, простых, более мощных альтернатив (другие языки шаблонов).

1
ответ дан 6 December 2019 в 10:46
поделиться

Дизайн веб-страницы часто передается дизайнерам.

Одна вещь о веб-дизайнерах заключается в том, что они знают HTML (если вам повезет), но не знают XSLT.

1
ответ дан 6 December 2019 в 10:46
поделиться

Неприятно делать циклы и if-else-выражения в XSLT, как неприятно бить молотком с отверткой. Не делайте этого. Поведение XSLT-скрипта определяется данными, вам нужно только найти подходящие соответствия для ваших шаблонов. XSLT-шаблоны - это не просто кусок кода. Фактические данные из XML-файла, содержащиеся в "match"-атрибуте "template"-элементов, решают, выполнять ли шаблон и когда.
Как только вы узнаете, что XSLT работает иначе, чем другие языки, вы увидите, какие возможности это вам дает. Легко делать вещи, которые трудно сделать на обычных языках. Просто используйте его, когда это уместно. Если ваши данные поступают в виде XML и вы знаете XSLT и XPath, это подходящий инструмент для создания веб-страниц.
Подсказки доступны, например, на jenitennison.com/xslt.

1
ответ дан 6 December 2019 в 10:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: