XML处理指令(PI)格式为,用于向应用程序传递处理信息;target必需且不区分大小写(xml除外),content可选但不可含?>;标准XML声明是特例,须位于文档开头且仅一次。

XML中的处理指令(Processing Instruction,简称PI)是用来向应用程序传递特定处理信息的标记,格式为 ,其中 target 是必需的、不区分大小写的标识符(如 xml、php、xsl),content 是可选的、由目标应用解释的任意文本,不能包含 ?>。
标准XML声明也是一种处理指令
最常见的例子是XML文档开头的声明:
它是一个特殊的处理指令,必须位于文档最开始(可选BOM之后),且只能出现一次。这里的 xml 是预定义的目标名,用于告知解析器该文档遵循XML规范。
自定义处理指令的用途
开发者可定义自己的PI,供特定处理器(如XSLT引擎、模板渲染器、静态生成工具)读取并执行相应逻辑:
本文档主要讲述的是JSON的简单用法;JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。 JSON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
- 在XSLT中常用
(虽然实际标准写法是通过元素而非PI定义样式表) - 某些XML编辑器或发布系统识别
提取元数据 - PHP嵌入式XML中可能用
(需后端明确支持解析)
使用注意事项
处理指令不是XML元素,不参与文档结构树,解析器通常将其作为独立节点(PROCESSING_INSTRUCTION_NODE)暴露给程序,但不会验证其内容:
- target 不能是
xml(大小写敏感)、XML、Xml等变体(仅小写xml合法) - content 中禁止出现
?>,否则会导致解析失败 - PI可出现在文档任意位置(除文档类型声明内部),但不能在标记内(如
不合法)> - 多数通用XML解析器(如Python的xml.etree、Java的DOM)默认保留PI节点,但不主动处理其内容
简单示例(合法写法)
以下是一个含自定义PI的XML片段:
上述 generator 和 highlight 是自定义target,具体含义由配套处理程序定义。









