Как я могу отобразить XML в браузере с сохраненным пробелом / предварительно отформатированным текстом? - PullRequest
0 голосов
/ 03 марта 2012

Я надеюсь создать простой язык XML для форматирования отчетов, которые мне нужно написать, что-то вроде

<?xml-stylesheet href="./report.css"?>    
<report>
<title>A Tale of Two Cities</title>
<author>Charles Dickens</author>
<code>
int main (int argc, char **argv)
{       
    int x = 5;
}
</code>
</report>

Где report.css выглядит

title { 
    font-family: serif;
    background: white; 
    color: #003 
}

author { 
    font-size: large;
    margin: 1em 0 
}

code { 
    font-style: italic 
}

и т.д.. Проблема в том, что мне действительно нужно оставить пробелы в некоторых тегах, например code. В html тег <pre> делает это, но я не могу найти аналога для xml, и мой браузер выбрасывает все пробелы при рендеринге XML-файла. <code xml:space="preserve"> не решает проблему (насколько я понимаю, потому что это не только текстовый узел). Есть ли надежда на то, что браузер отобразит это правильно (после чего я могу просто напечатать его в pdf)? Или в противном случае создать красивый отчет? Или я должен просто переключиться на LaTeX?

1 Ответ

0 голосов
/ 03 марта 2012

CSS-аналог тега HTML pre в основном white-space: pre вместе с установкой моноширинного шрифта.При стилизации XML также необходимо установить свойство display, если необходимо, чтобы по умолчанию элементы не были встроенными.

code { 
  display: block;
  white-space: pre;
  font-family: Consolas, Courier, monospace;
}
...