DOMResult (Java SE 26 & JDK 26)
Description: declaration: module: java.xml, package: javax.xml.transform.dom, class: DOMResult
Keywords: javax.xml.transform.dom.DOMResult class

# Class DOMResult

java.lang.Object
javax.xml.transform.dom.DOMResult

All Implemented Interfaces:
  `Result`

public class DOMResult extends Object implements Result
Acts as a holder for a transformation result tree in the form of a Document Object Model (DOM) tree.

If no output DOM source is set, the transformation will create a Document node as the holder for the result of the transformation, which may be retrieved with `getNode()`.

Since:
  1.4

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `FEATURE`
  If `TransformerFactory.getFeature(String)` returns `true` when passed this value as an argument, the `Transformer` supports `Result` output of this type.

  ### Fields declared in interface Result

  `PI_DISABLE_OUTPUT_ESCAPING, PI_ENABLE_OUTPUT_ESCAPING`
  Modifier and Type
  Field
  Description
  `static final String`
  `PI_DISABLE_OUTPUT_ESCAPING`
  The name of the processing instruction that is sent if the result tree disables output escaping.
  `static final String`
  `PI_ENABLE_OUTPUT_ESCAPING`
  The name of the processing instruction that is sent if the result tree enables output escaping at some point after having received a PI_DISABLE_OUTPUT_ESCAPING processing instruction.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DOMResult()`
  Zero-argument default constructor.
  `DOMResult(Node node)`
  Use a DOM node to create a new output target.
  `DOMResult(Node node, String systemId)`
  Use a DOM node to create a new output target with the specified System ID.
  `DOMResult(Node node, Node nextSibling)`
  Use a DOM node to create a new output target specifying the child node where the result nodes should be inserted before.
  `DOMResult(Node node, Node nextSibling, String systemId)`
  Use a DOM node to create a new output target specifying the child node where the result nodes should be inserted before and the specified System ID.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Node`
  `getNextSibling()`
  Get the child node before which the result nodes will be inserted.
  `Node`
  `getNode()`
  Get the node that will contain the result DOM tree.
  `String`
  `getSystemId()`
  Get the System Identifier.
  `void`
  `setNextSibling(Node nextSibling)`
  Set the child node before which the result nodes will be inserted.
  `void`
  `setNode(Node node)`
  Set the node that will contain the result DOM tree.
  `void`
  `setSystemId(String systemId)`
  Set the systemId that may be used in association with the node.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `String`
  `toString()`
  Returns a string representation of the object.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Field Details

  - ### FEATURE

    public static final String FEATURE
    If `TransformerFactory.getFeature(String)` returns `true` when passed this value as an argument, the `Transformer` supports `Result` output of this type.
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### DOMResult

    public DOMResult()
    Zero-argument default constructor.

    `node`, `siblingNode` and `systemId` will be set to `null`.

  - ### DOMResult

    public DOMResult(Node node)
    Use a DOM node to create a new output target.

    In practice, the node should be a `Document` node, a `DocumentFragment` node, or a `Element` node. In other words, a node that accepts children.

    `siblingNode` and `systemId` will be set to `null`.

    Parameters:
      `node` - The DOM node that will contain the result tree.

  - ### DOMResult

    public DOMResult(Node node, String systemId)
    Use a DOM node to create a new output target with the specified System ID.

    In practice, the node should be a `Document` node, a `DocumentFragment` node, or a `Element` node. In other words, a node that accepts children.

    `siblingNode` will be set to `null`.

    Parameters:
      `node` - The DOM node that will contain the result tree.
      `systemId` - The system identifier which may be used in association with this node.

  - ### DOMResult

    public DOMResult(Node node, Node nextSibling)
    Use a DOM node to create a new output target specifying the child node where the result nodes should be inserted before.

    In practice, `node` and `nextSibling` should be a `Document` node, a `DocumentFragment` node, or a `Element` node. In other words, a node that accepts children.

    Use `nextSibling` to specify the child node where the result nodes should be inserted before. If `nextSibling` is not a sibling of `node`, then an `IllegalArgumentException` is thrown. If `node` is `null` and `nextSibling` is not `null`, then an `IllegalArgumentException` is thrown. If `nextSibling` is `null`, then the behavior is the same as calling `DOMResult(Node node)`, i.e. append the result nodes as the last child of the specified `node`.

    `systemId` will be set to `null`.

    Parameters:
      `node` - The DOM node that will contain the result tree.
      `nextSibling` - The child node where the result nodes should be inserted before.
    Throws:
      `IllegalArgumentException` - If `nextSibling` is not a sibling of `node` or `node` is `null` and `nextSibling` is not `null`.
    Since:
      1.5

  - ### DOMResult

    public DOMResult(Node node, Node nextSibling, String systemId)
    Use a DOM node to create a new output target specifying the child node where the result nodes should be inserted before and the specified System ID.

    In practice, `node` and `nextSibling` should be a `Document` node, a `DocumentFragment` node, or a `Element` node. In other words, a node that accepts children.

    Use `nextSibling` to specify the child node where the result nodes should be inserted before. If `nextSibling` is not a sibling of `node`, then an `IllegalArgumentException` is thrown. If `node` is `null` and `nextSibling` is not `null`, then an `IllegalArgumentException` is thrown. If `nextSibling` is `null`, then the behavior is the same as calling `DOMResult(Node node, String systemId)`, i.e. append the result nodes as the last child of the specified node and use the specified System ID.

    Parameters:
      `node` - The DOM node that will contain the result tree.
      `nextSibling` - The child node where the result nodes should be inserted before.
      `systemId` - The system identifier which may be used in association with this node.
    Throws:
      `IllegalArgumentException` - If `nextSibling` is not a sibling of `node` or `node` is `null` and `nextSibling` is not `null`.
    Since:
      1.5

- ## Method Details

  - ### setNode

    public void setNode(Node node)
    Set the node that will contain the result DOM tree.

    In practice, the node should be a `Document` node, a `DocumentFragment` node, or a `Element` node. In other words, a node that accepts children.

    An `IllegalStateException` is thrown if `nextSibling` is not `null` and `node` is not a parent of `nextSibling`. An `IllegalStateException` is thrown if `node` is `null` and `nextSibling` is not `null`.

    Parameters:
      `node` - The node to which the transformation will be appended.
    Throws:
      `IllegalStateException` - If `nextSibling` is not `null` and `nextSibling` is not a child of `node` or `node` is `null` and `nextSibling` is not `null`.

  - ### getNode

    public Node getNode()
    Get the node that will contain the result DOM tree.

    If no node was set via `DOMResult(Node node)`, `DOMResult(Node node, String systeId)`, `DOMResult(Node node, Node nextSibling)`, `DOMResult(Node node, Node nextSibling, String systemId)` or `setNode(Node node)`, then the node will be set by the transformation, and may be obtained from this method once the transformation is complete. Calling this method before the transformation will return `null`.

    Returns:
      The node to which the transformation will be appended.

  - ### setNextSibling

    public void setNextSibling(Node nextSibling)
    Set the child node before which the result nodes will be inserted.

    Use `nextSibling` to specify the child node before which the result nodes should be inserted. If `nextSibling` is not a descendant of `node`, then an `IllegalArgumentException` is thrown. If `node` is `null` and `nextSibling` is not `null`, then an `IllegalStateException` is thrown. If `nextSibling` is `null`, then the behavior is the same as calling `DOMResult(Node node)`, i.e. append the result nodes as the last child of the specified `node`.

    Parameters:
      `nextSibling` - The child node before which the result nodes will be inserted.
    Throws:
      `IllegalArgumentException` - If `nextSibling` is not a descendant of `node`.
      `IllegalStateException` - If `node` is `null` and `nextSibling` is not `null`.
    Since:
      1.5

  - ### getNextSibling

    public Node getNextSibling()
    Get the child node before which the result nodes will be inserted.

    If no node was set via `DOMResult(Node node, Node nextSibling)`, `DOMResult(Node node, Node nextSibling, String systemId)` or `setNextSibling(Node nextSibling)`, then `null` will be returned.

    Returns:
      The child node before which the result nodes will be inserted.
    Since:
      1.5

  - ### setSystemId

    public void setSystemId(String systemId)
    Set the systemId that may be used in association with the node.
    Specified by:
      `setSystemId` in interface `Result`
    Parameters:
      `systemId` - The system identifier as a URI string.

  - ### getSystemId

    public String getSystemId()
    Get the System Identifier.

    If no System ID was set via `DOMResult(Node node, String systemId)`, `DOMResult(Node node, Node nextSibling, String systemId)` or `setSystemId(String systemId)`, then `null` will be returned.

    Specified by:
      `getSystemId` in interface `Result`
    Returns:
      The system identifier.