文档:createProcessingInstruction() 方法

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

createProcessingInstruction() 会生成一个新的 处理指令 节点并返回它。

新节点通常会被插入到 XML 文档中,以便对其进行操作,例如使用 node.insertBefore

语法

js
createProcessingInstruction(target, data)

参数

piNode

生成的 ProcessingInstruction 节点。

目标

一个包含处理指令第一部分的字符串(即 <?target … ?>

data

一个包含处理指令应携带的任何信息的字符串,位于 target 之后。数据由您决定,但不能包含 ?>,因为这会关闭处理指令。

返回值

无(undefined)。

异常

InvalidCharacterError DOMException

如果以下任一情况成立,则会抛出异常

  • target 目标 值不是有效的 XML 名称;例如,它以数字、连字符或句点开头,或者包含除字母数字字符、下划线、连字符或句点以外的字符。
  • 结束处理指令序列?>)是 data 数据 值的一部分。

示例

js
const doc = new DOMParser().parseFromString("<foo />", "application/xml");
const pi = doc.createProcessingInstruction(
  "xml-stylesheet",
  'href="mycss.css"',
);

doc.insertBefore(pi, doc.firstChild);

console.log(new XMLSerializer().serializeToString(doc));
// Displays: <?xml-stylesheet href="mycss.css" type="text/css"?><foo/>

规范

规范
DOM
# ref-for-dom-document-createprocessinginstruction①

浏览器兼容性