如何在保留有空格/预格式化文本的浏览器中显示XML?

时间:2012-03-03 00:16:50

标签: html css xml browser whitespace

我希望创建一个简单的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 :(得分:0)

HTML pre标记的CSS对应部分基本上是white-space: pre,同时设置了等宽字体。在样式化XML时,您还需要根据需要设置display属性,以防止元素默认为内联。

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