如何在Web浏览器中查看XML文件

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

Scribus XML file

这是Scribus随附的在线手册的menu.xml文件的开头,我是该撰稿人。 尽管您看到蓝色文本,但它们不是可单击的链接。 我希望能够在常规浏览器中查看此内容,因为有时我需要在Scribus中的画布上来回浏览手册,以弄清楚如何做某事(也许是看看是否需要编辑手册以使其更直找出一些错误信息或添加一些缺少的信息)。

帮助浏览器知道如何处理这些XML标记的方法是使用XSLT(可扩展样式表语言转换)。 从广义上讲,您可以使用XSLT将XML转换为各种输出,甚至将HTML转换为XML。 在这里,我想使用它将XML标签作为合适HTML呈现给浏览器。

需要对XML文件进行一些小的修改:

Modified XML file

在文件中添加第二行,将指示浏览器查找名为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中显示的那样。 我没有尝试重复的功能之一就是能够折叠和扩展子菜单区域。 您可以想象,需要一些时间来整理您需要创建的嵌套列表的数量,但是当我完成时,它的外观如下:

Scribus menu

menu.xml的最小编辑不会影响Scribus在其自己的浏览器中显示手册的功能。 我将修改后的menu.xml文件和scribus-manual.xsl放在Scribus的1.5.x版本的英文文档文件夹中,因此使用这些版本的任何人都可以将其浏览器指向menu.xml文件,它应该只显示就像你在上面看到的

我几年前做的一件大事,是在发行ICD10(国际疾病分类,第10版)时创建了该版本。 从以前的版本(ICD9)到10,进行了许多更改。这很重要,因为在医疗实践中必须将这些代码用于诊断目的。 由于XML文件是公共信息,因此您可以轻松地从美国Medicare和Medicaid中心网站下载XML文件,但是-就像Scribus手册一样,这些文件很难使用。

这是疾病表格列表的开始:

Tabular listing of diseases in ICD10

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

Color-coding feature

menu.xml一样 ,我在Tabular.xml文件中所做的唯一编辑是添加<?xml-stylesheet type =“ text / xsl” href =“ tabular.xsl”?>作为文件的第二行。 我从2014年版本开始了这个项目,很高兴发现当2016年版本发布时,原始的tabular.xsl样式表可以完美地工作,这是我最后处理的版本。 Tabular.xml文件为8.4MB,对于纯文本文件来说很大。 加载到浏览器需要花费几秒钟的时间,但是一旦加载,导航就会很快。

尽管您可能不必经常用这种方式处理XML文件,但是如果您愿意的话,我希望本文表明您可以轻松地将文件转换为更有用的文件。

翻译自: https://opensource.com/article/18/12/xml-browser

### 如何用浏览器打开和显示XML文件 要在浏览器查看或解析XML文件,可以按照以下方法操作: #### 配置IDEA以支持通过浏览器打开XML文件 在IntelliJ IDEA 2020版本中,默认情况下可能无法直接通过内置功能使用浏览器打开XML文件。可以通过调整设置来解决这一问题。具体步骤如下[^1]: - 打开IDEA软件。 - 点击菜单栏中的 **文件 (File)** -> **设置 (Settings)**。 - 在左侧导航栏找到 **工具 (Tools)** -> **Web Browsers**。 - 勾选XML文件关联的选项。 完成上述配置后,可以直接右键单击项目中的XML文件并选择“Open in Browser”,从而实现在默认浏览器中打开该文件[^2]。 #### 浏览器端的操作方式 如果已经生成了一个本地XML文件,则无需依赖开发环境也可以直接通过浏览器访问它[^3]: 1. 将XML文件保存至计算机上的任意位置。 2. 使用鼠标双击此文件,或者手动拖拽到已安装的支持HTML/XML渲染的主流浏览器窗口内(如Google Chrome、Mozilla Firefox等)。 3. 如果一切正常,应该能够看到结构化的文档内容以及标签层次关系。 需要注意的是,在某些特殊场景下可能会遇到兼容性问题或者是编码方面的障碍[^4]。例如当服务器返回的内容类型(Content-Type)不符合标准定义时,部分客户端应用也许会拒绝加载资源;又比如中文字符集未被正确定义也可能引发乱码现象等问题。 另外一种情况是从Java应用程序导出的数据流最终形成可供下载使用的XML格式档案[^5]。此时可借助`Desktop.getDesktop().browse(URI.create(path))`这样的API调用来触发用户的操作系统级行为——即启动预设好的外部程序实例去处理指定路径下的目标对象。 ```java // Java示例代码片段用于演示如何让系统尝试打开特定URL地址所指向的位置 import java.io.File; import java.awt.Desktop; public class OpenXmlInBrowser { public static void main(String[] args){ try{ File file = new File("example.xml"); Desktop desktop = Desktop.isDesktopSupported() ? Desktop.getDesktop() : null; if(desktop !=null && file.exists()){ desktop.open(file); } }catch(Exception e){ System.out.println(e.getMessage()); } } } ``` 以上介绍了几种常见的途径帮助开发者们更便捷高效地利用现代网络技术手段来进行跨平台间的信息交换活动的同时也保障了用户体验的一致性和友好度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值