一旦了解到HTML是XML的一种形式,您可能会想知道如果尝试在浏览器中查看XML文件会发生什么。 结果令人非常失望-Firefox在页面顶部显示一条横幅,上面写着:“此XML文件似乎没有与之关联的任何样式信息。文档树如下所示。” 文档树看起来像文件在编辑器中的样子:

这是Scribus随附的在线手册的menu.xml文件的开头,我是该撰稿人。 尽管您看到蓝色文本,但它们不是可单击的链接。 我希望能够在常规浏览器中查看此内容,因为有时我需要在Scribus中的画布上来回浏览手册,以弄清楚如何做某事(也许是看看是否需要编辑手册以使其更直找出一些错误信息或添加一些缺少的信息)。
帮助浏览器知道如何处理这些XML标记的方法是使用XSLT(可扩展样式表语言转换)。 从广义上讲,您可以使用XSLT将XML转换为各种输出,甚至将HTML转换为XML。 在这里,我想使用它将XML标签作为合适HTML呈现给浏览器。
需要对XML文件进行一些小的修改:

在文件中添加第二行,将指示浏览器查找名为scribus-manual.xsl的文件以获取样式信息。 更重要的部分是创建此XSL文件。 这是Scribus手册的scribus-manual.xsl的完整列表:
<?xml version = "1.0" encoding = "utf-8" ?>
<xsl:stylesheet version = "1.0"
xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" >
<xsl:template match = "/" >
<html >
<title > Scribus Online Manual
</title >
<style type = "text/css" >
h2,h3,h4 { text-indent: 50px;}
ul { margin-left: 100px;}
</style >
<table border = "0" cellspacing = "0" cellpadding = "0" width = "100%"
bgcolor = "#183867" >
<tr >
<td align = "left" > <img src = "images/docheader1.png" width = "222"
height = "87" /> </td >
<td align = "right" > <img src = "images/docheader2.png" width = "318"
height = "87" /> </td >
</tr >
</table >
<body bgcolor = "#ffffff" >
<xsl:for-each select = "menu" >
<xsl:for-each select = "area" >
<h3 > <a href = "{@file}" > <xsl:value-of select = "@text" /> </a > </h3 >
<xsl:for-each select = "submenuitem" >
<h4 > <a href = "{@file}" > <xsl:value-of select = "@text" /> </a > </h4 >
<xsl:for-each select = "submenuitem" >
<p > <ul >
<li > <a href = "{@file}" > <xsl:value-of select = "@text" /> </a > </li >
</ul > </p >
</xsl:for-each >
</xsl:for-each >
<xsl:for-each select = "area" >
<h3 > <a href = "{@file}" > <xsl:value-of select = "@text" /> </a > </h3 >
</xsl:for-each >
</xsl:for-each >
</xsl:for-each >
</body >
</html >
</xsl:template >
</xsl:stylesheet >
这看起来更像HTML,您可以看到它包含许多HTML标记。 在经过一些初步的标记以及有关显示H2,H3和H4标记的一些细节之后,您将看到一个Table标记。 这将在页面顶部添加图形标题,并使用文档文件中已有的某些图像。
此后,您将进入剖析各个子菜单标签的过程,尝试创建嵌套列表结构,如在查看手册时在Scribus中显示的那样。 我没有尝试重复的功能之一就是能够折叠和扩展子菜单区域。 您可以想象,需要一些时间来整理您需要创建的嵌套列表的数量,但是当我完成时,它的外观如下:

对menu.xml的最小编辑不会影响Scribus在其自己的浏览器中显示手册的功能。 我将修改后的menu.xml文件和scribus-manual.xsl放在Scribus的1.5.x版本的英文文档文件夹中,因此使用这些版本的任何人都可以将其浏览器指向menu.xml文件,它应该只显示就像你在上面看到的
我几年前做的一件大事,是在发行ICD10(国际疾病分类,第10版)时创建了该版本。 从以前的版本(ICD9)到10,进行了许多更改。这很重要,因为在医疗实践中必须将这些代码用于诊断目的。 由于XML文件是公共信息,因此您可以轻松地从美国Medicare和Medicaid中心网站下载XML文件,但是-就像Scribus手册一样,这些文件很难使用。
这是疾病表格列表的开始:

我创建的功能之一是此处显示的清单中使用的颜色编码:

与menu.xml一样 ,我在Tabular.xml文件中所做的唯一编辑是添加<?xml-stylesheet type =“ text / xsl” href =“ tabular.xsl”?>作为文件的第二行。 我从2014年版本开始了这个项目,很高兴发现当2016年版本发布时,原始的tabular.xsl样式表可以完美地工作,这是我最后处理的版本。 Tabular.xml文件为8.4MB,对于纯文本文件来说很大。 加载到浏览器需要花费几秒钟的时间,但是一旦加载,导航就会很快。
尽管您可能不必经常用这种方式处理XML文件,但是如果您愿意的话,我希望本文表明您可以轻松地将文件转换为更有用的文件。