如何在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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在web.xml配置servlet的方法如下: 1. 在web.xml文件添加servlet定义,例如: ``` <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>com.example.MyServlet</servlet-class> </servlet> ``` 2. 在web.xml文件添加servlet映射,例如: ``` <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/myServlet</url-pattern> </servlet-mapping> ``` 3. 重新部署应用程序,即可在浏览器通过"http://your-domain/your-app/myServlet"访问该servlet。 ### 回答2: 首先,需要了解什么是web.xml文件web.xml文件Java Web应用程序的部署描述文件,它描述了Web应用程序的所有组件。其包括servlet、filter、listener等web组件的定义和配置。通过web.xml文件,可以为Web应用程序提供自定义的配置信息,以使其能够更加灵活、强大。 而在web.xml文件配置servlet非常常见且必要。通过配置servlet,可以将请求映射到servlet,并指定其对应的URL模式。这样,当有请求匹配到URL模式时,就会调用相应的servlet进行处理。 下面是在web.xml配置servlet的步骤: 1.在web.xml文件添加servlet元素,例如: ``` <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>com.example.MyServlet</servlet-class> </servlet> ``` 其,servlet-name是servlet的名称,servlet-class是servlet类的完全限定名。 2.在web.xml文件添加servlet-mapping元素,将servlet映射到URL模式。例如: ``` <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/myservlet/*</url-pattern> </servlet-mapping> ``` 其,servlet-name是之前定义的servlet的名称,url-pattern是URL模式。这里的意思是,当有请求路径是“/myservlet/”及其子路径时,就会调用MyServlet进行处理。 3.部署web应用程序。将web.xml和servlet类打包成war文件,然后将其部署到Web容器即可。 需要说明的是,虽然配置servlet是很常见的操作,但是现在的Java Web应用程序往往采用注解的方式来配置servlet,这种方式更加方便和简洁,不需要在web.xml文件进行大量的配置。但是,了解在web.xml配置servlet的方法仍然有必要,因为这是Java Web编程的基础知识之一。 ### 回答3: 在使用Java Web技术开发Web应用程序时,经常需要使用Servlet来处理HTTP请求和响应。而在将Servlet运行在Web容器时,需要在web.xml文件进行Servlet的配置,以便让Web容器启动和管理Servlet的生命周期。 下面是在web.xml配置Servlet的步骤: 1. 创建一个Servlet类 首先要创建一个继承自javax.servlet.http.HttpServlet的Servlet类。这个类需要实现doGet、doPost等方法,以处理HTTP请求和响应。 2. 在web.xml配置Servlet类 在web.xml文件需要添加一个<servlet>元素来配置Servlet类,其包括Servlet的名称和完整的Servlet类名。 <servlet> <servlet-name>servletSample</servlet-name> <servlet-class>com.example.ServletSample</servlet-class> </servlet> 3. 配置Servlet映射 在<servlet>元素之后,需要再添加一个<servlet-mapping>元素,用于配置Servlet的映射路径,即Servlet处理哪些URI请求。 <servlet-mapping> <servlet-name>servletSample</servlet-name> <url-pattern>/sample</url-pattern> </servlet-mapping> 4. 配置Servlet初始化参数(可选) 如果Servlet需要使用一些初始化参数,可以在<servlet>元素添加一个<init-param>元素来配置这些参数。Servlet可以通过getInitParameter()方法获取这些参数的值。 <servlet> <servlet-name>servletSample</servlet-name> <servlet-class>com.example.ServletSample</servlet-class> <init-param> <param-name>param1</param-name> <param-value>value1</param-value> </init-param> </servlet> 5. Servlet的声明周期 Servlet的生命周期由Web容器管理,可以在web.xml文件添加一个<load-on-startup>元素来设置Servlet的启动顺序,以保证Servlet能够在Web应用程序启动时就被加载和初始化。 <servlet> <servlet-name>servletSample</servlet-name> <servlet-class>com.example.ServletSample</servlet-class> <load-on-startup>1</load-on-startup> </servlet> 通过如上步骤,配置完整的Servlet,就可以在Web应用程序使用该Servlet来处理HTTP请求和响应了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值