Back to Content

Document: createProcessingInstruction() method

files/en-us/web/api/document/createprocessinginstruction/index.md

latest1.7 KB
Original Source

{{APIRef("DOM")}}

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 {{ domxref("node.insertBefore") }}.

Syntax

js-nolint
createProcessingInstruction(target, data)

Parameters

  • piNode
    • : The resulting {{ domxref("ProcessingInstruction") }} node.
  • target
    • : A string containing the first part of the processing instruction (i.e., <?target … ?>)
  • data
    • : 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.

Return value

None ({{jsxref("undefined")}}).

Exceptions

  • InvalidCharacterError {{domxref("DOMException")}}
    • : Thrown if either of the following are true:
      • The target value is not a valid XML name; for example, it starts with a number, hyphen, or period, or contains characters other than alphanumeric characters, underscores, hyphens, or periods.
      • The closing processing instruction sequence (?>) is part of the data value.

Examples

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/>

Specifications

{{Specifications}}

Browser compatibility

{{Compat}}