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.
Syntax
piNode = document.createProcessingInstruction(target, data)
Parameters
piNodeis the resultingProcessingInstructionnode.targetis a string containing the first part of the processing instruction (i.e.,<?target … ?>)datais a 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.
Exceptions
DOM_INVALID_CHARACTER- Throws if either of the following are true:
- The processing instruction
targetis invalid — it should be a valid XML name that doesn't contain "xml", "XML", or any case combination of the two, other than standardized ones such as<?xml-stylesheet ?>. - The closing processing instruction sequence (
?>) is part of thedata.
- The processing instruction
Example
var doc = new DOMParser().parseFromString('<foo />', 'application/xml');
var pi = doc.createProcessingInstruction('xml-stylesheet', 'href="mycss.css" type="text/css"');
doc.insertBefore(pi, doc.firstChild);
console.log(new XMLSerializer().serializeToString(doc));
// Displays: <?xml-stylesheet href="mycss.css" type="text/css"?><foo/>
Specifications
| Specification | Status | Comment |
|---|---|---|
| DOM The definition of 'createProcessingInstruction()' in that specification. |
Living Standard | No change |
| DOM4 The definition of 'createProcessingInstruction()' in that specification. |
Obsolete | Added more explicit definition of how the data parameter is validated. |
| Document Object Model (DOM) Level 3 Core Specification The definition of 'createProcessingInstruction()' in that specification. |
Obsolete | Added note that the namespace of the target name is not checked whether it is well-formed, defined what is considered an illegal character for the target name and specified the returned ProcessingInstruction object more precisely. |
| Document Object Model (DOM) Level 2 Core Specification The definition of 'createProcessingInstruction()' in that specification. |
Obsolete | No change |
| Document Object Model (DOM) Level 1 Specification The definition of 'createProcessingInstruction()' in that specification. |
Obsolete | Initial definition |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
createProcessingInstruction | Chrome Full support 1 | Edge Full support 12 | Firefox Full support Yes | IE ? | Opera Full support Yes | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android Full support Yes | Opera Android Full support Yes | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
Legend
- Full support
- Full support
- Compatibility unknown
- Compatibility unknown
