xml文档中关联css或xslt需用处理指令,位于xml声明后、根元素前;css用type="text/css",xslt用type="text/xsl"或"application/xslt+xml",均须外部引用且路径相对xml文档。

在XML文档中关联CSS或XSLT样式表,需使用<?xml-stylesheet ?>处理指令(PI),它必须出现在XML声明之后、根元素之前。
基本语法与位置要求
该指令是XML处理指令,不是XML元素,格式固定:
- 必须以
<?xml-stylesheet开头,以?>结尾 - 只能出现在XML声明(
<?xml version="1.0"?>)之后、第一个元素之前 - 一个XML文档可包含多个
xml-stylesheet指令,浏览器通常只识别第一个有效的CSS关联
关联CSS样式表
用于为XML文档定义可视化样式(如在浏览器中渲染):
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/css" href="style.css"?> <book> <title>XML入门</title> <author>张三</author> </book>
-
type="text/css":明确声明样式表类型 -
href:相对或绝对路径,指向CSS文件 - 浏览器加载XML时,会同时获取并应用该CSS(前提是XML被直接打开,且浏览器支持)
关联XSLT转换样式表
用于将XML转换为HTML或其他格式(常用于服务端或支持XSLT的客户端):
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="transform.xsl"?> <data> <item>苹果</item> <item>香蕉</item> </data>
-
type="text/xsl"或type="application/xslt+xml"均可,后者更符合现代标准 - XSLT文件需是合法的XSLT 1.0/2.0/3.0文档,浏览器内置支持通常限于XSLT 1.0
- 部分浏览器(如Firefox)支持本地XSLT转换;Chrome默认禁用本地文件的XSLT(因安全策略),需通过本地服务器访问
常见注意事项
实际使用中容易忽略的关键点:
- 路径错误是最常见问题——
href是相对于XML文档所在位置解析的 - XML文档必须格式良好(well-formed),否则样式表不会被处理
- 不支持内联样式表(不能像HTML那样写
<style></style>),所有样式必须外部引用 - 多个样式表可通过添加
title和alternate属性实现可选切换(类似HTML的<link rel="alternate stylesheet">),但浏览器支持有限,不推荐依赖










