XML处理指令(PI)是用包裹的特殊标记,用于向处理器传递非内容类控制信息,语法为,target不可以xml开头,instruction-data可选,常见用途包括关联XSLT样式表、嵌入脚本提示、自定义元数据等。
XML中的处理指令(Processing Instruction,简称PI)是一种特殊标记,用于向XML处理器或应用程序传递额外的、非内容类的控制信息。它不构成文档的数据结构,也不会被解析为元素或文本,而是由支持PI的应用程序按需读取和响应。
所有处理指令都必须用 ... ?>包裹,格式为:
xml-stylesheet、php、myapp
type="text/xsl" href="style.xsl"
xml、XML 或任何大小写变体开头(这是XML 1.0规范保留的)处理指令最广为人知的用途是关联XSLT样式表,但也可用于其他场景:
(某些PHP解析器识别) 告知校验器使用哪个模式文件完整示例:
XML Guide
处理指令可以灵活放置,但需注意规则:
)本身是特例,不算普通PI,且必须是文档第一行(除空白外)在代码层面操作PI,不同语言有对应API:
/VB):使用 XmlDocument.CreateProcessingInstruction() 创建;通过 XmlNode.NodeType == XmlNodeType.ProcessingInstruction 判断并提取 Target 和 Data
Document.createProcessingInstruction();遍历时检查 Node.getNodeType() == Node.PROCESSING_INSTRUCTION_NODE
etree.ProcessingInstruction() 构造;PI节点类型为 etree.PI
关键点:应用程序必须主动查找并解释PI——XML标准本身不定义其含义,一切语义由目标处理器约定。