createProcessingInstruction() creates a new processing instruction node, and returns it.


Processing instruction node = document.createProcessingInstruction(target, data) 


  • Processing Instruction node is a ProcessingInstruction node.
  • target refers to the target part of the processing instruction node (i.e., <?target ... ?>
  • data is a string containing the data to be added to the data within the node.


Thrown if you attempt to create a processing instruction node on an HTML document in Gecko 9 (Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6) or earlier. In Gecko 10.0 (Firefox 10.0 / Thunderbird 10.0 / SeaMonkey 2.7) and later, you can use this method on HTML documents.
Thrown if you try to add an invalid processing instruction target (it should be an XML name besides any case combination of the letters "xml") or if the closing processing instruction sequence ("?>") is added as part of the data, so unescaped user-provided data cannot be safely used without escaping or otherwise dealing with such situations.


var docu = new DOMParser().parseFromString('<xml></xml>',  "application/xml")

var pi = docu.createProcessingInstruction('xml-stylesheet', 'href="mycss.css" type="text/css"');

docu.insertBefore(pi, docu.firstChild);

alert(new XMLSerializer().serializeToString(docu));
// Displays: <?xml-stylesheet href="mycss.css" type="text/css"?><xml/>


DOM 4: createProcessingInstruction

Document Tags and Contributors

 Contributors to this page: teoli, Krinkle, kscarfone, Sheppy, dbruant, Zcorpan, Brettz9
 Last updated by: teoli,
Hide Sidebar