Module java.xml
Package javax.xml.transform.dom

## 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 String` | `FEATURE` | If `TransformerFactory.getFeature(java.lang.String)` returns `true` when passed this value as an argument, the `Transformer` supports `Result` output of this type.

    - ### Fields declared in interface javax.xml.transform.Result

      `PI_DISABLE_OUTPUT_ESCAPING, PI_ENABLE_OUTPUT_ESCAPING`

  - ### 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 java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### FEATURE

          public static final String FEATURE

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

  - ### Constructor Detail

    - #### 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 Detail

    - #### 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.