This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
createProcessingInstruction() generates a new processing instruction node and returns it.
The new node usually will be inserted into an XML document in order to accomplish anything with it, such as with node.insertBefore.
createProcessingInstruction(target, data)
piNodeThe resulting ProcessingInstruction node.
targetA string containing the first part of the processing instruction (i.e., <?target … ?>)
dataA string containing any information the processing instruction should carry, after the target. The data is up to you, but it can't contain ?>, since that closes the processing instruction.
None (undefined).
InvalidCharacterError DOMException
Thrown if either of the following are true:
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/>
| Specification |
|---|
| DOM> # ref-for-dom-document-createprocessinginstruction①> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
createProcessingInstruction |
1 | 12 | 1 | ≤12.1 | 1 | 18 | 4 | ≤12.1 | 1 | 1.0 | 4.4 | 1 |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Document/createProcessingInstruction