Как я могу стилизовать XML с помощью CSS для просмотра в браузере без предварительного преобразования в (X) HTML?

Я знаю, что CSS можно использовать для управления представлением (X) HTML в современных браузерах. У меня создалось впечатление, что это возможно и для произвольного XML. (Я ошибаюсь?)

Конкретный пример: с учетом следующего XML

<log>
  <entry revision = "1">
    <author>J Random Hacker</author>
    <message>Some pithy explanation</message>
  </entry>
</log>

Я хотел бы связать CSS с этим XML, чтобы при просмотре в современном браузере (WebKit, FireFox) я видел что-то вроде:

+----------------------------------+
| revision | 1                     |
+----------------------------------+
| author   | J Random Hacker       |
+----------------------------------+
| message  | Some pithy explanation|
+----------------------------------+

Где мой такой красивый ascii-art предназначен для обозначения некоторой табличной компоновки.

То есть: XML + CSS -> «пиксели для пользователя» вместо XML + XSLT -> XHTML + CSS -> «пиксели для пользователя».

Я надеюсь, что этот подход может быть более простым (для меня) способом представления XML-документов, которые уже похожи на документы по своей структуре. Мне просто любопытно.

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
3
0
3 899
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Действительно, можно использовать CSS для форматирования XML-документа.

Пример школы W3

(W3C действительно рекомендует использовать xslt для подобных вещей вместо CSS)

Спасибо! Это именно тот пример, который я искал, чтобы начать работу. (А почему я не обнаружил, что последние N раз я сам пытался загуглить и ответить?)

bendin 11.11.2008 00:37

К сожалению, вы не сможете делать такие вещи, как преобразование этой revision = "1" в "ячейку", содержащую "1", только с помощью CSS - здесь на помощь приходят преобразования XSL - хотя это гораздо более крутая кривая обучения: D

mercutio 11.11.2008 00:39

Он лучше, чем XSLT для отображения XML для печати, он имеет лучшую функциональность для конкретного принтера (например, нумерацию страниц, поля в зависимости от размера бумаги принтера и т. д.) И более простой синтаксис, хотя есть несколько визуальных генераторов XSL, которые делают создание XSL почти так просто.

PJUK 23.06.2011 21:08

Да, это возможно. вы просто пишете правило для каждого элемента:

author{
   display:block;
   color:#888888;
}

и т.п.

Согласно Спецификация, CSS должен работать как с документами XML, так и с документами HTML. Вместо того, чтобы выбирать общие элементы HTML в вашем коде CSS, вы выбираете свои собственные элементы в файле CSS, например:

entry {
    display: block;
}
author {
    display: inline;
    font-weight: bold;
}
...

Вы можете связать CSS-файл с вашим XML-файлом, вставив аналогичную строку кода в ваш XML-файл:

<?xml-stylesheet href = "common.css" type = "text/css"?>

Другие вопросы по теме