Java : Node (XML) con ejemplos

Node (Java SE 22 & JDK 22) en Java con ejemplos.
Encontrará ejemplos de código en la mayoría de los métodos de Node.

Nota :


Summary

La interfaz Node es el tipo de datos principal de todo el modelo de objetos de documento. Representa un nodo único en el árbol de documentos. (Traducción automática)

Class diagram

Code examples on this page use the printDocument method below.

public void printDocument(Document document) throws TransformerException {
    final var transformer = TransformerFactory.newInstance().newTransformer();
    transformer.setOutputProperty(OutputKeys.INDENT, "yes");
    transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");

    final var result = new StreamResult(new StringWriter());
    transformer.transform(new DOMSource(document), result);

    System.out.print(result.getWriter());
}
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.newDocument();

final var root = document.createElement("root");
System.out.println(root); // [root: null]

document.appendChild(root);

final var child = document.createElement("child");
System.out.println(child); // [child: null]

root.appendChild(child);

final var text = document.createTextNode("abcd");
System.out.println(text); // [#text: abcd]

child.appendChild(text);

//<root>
//    <child>abcd</child>
//</root>
printDocument(document);

Fields

static final short ATTRIBUTE_NODE

El nodo es un Attr. (Traducción automática)

final var xml = """
        <root attr="abc"/>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

final Node attr = document.getDocumentElement().getAttributes().getNamedItem("attr");
System.out.println(attr); // attr="abc"

System.out.println(Node.ATTRIBUTE_NODE); // 2
System.out.println(attr.getNodeType() == Node.ATTRIBUTE_NODE); // true

static final short CDATA_SECTION_NODE

El nodo es una CDATASection. (Traducción automática)

final var xml = """
        <root><![CDATA[<&>]]></root>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

final Node cdata = document.getDocumentElement().getFirstChild();
System.out.println(cdata); // [#cdata-section: <&>]

System.out.println(Node.CDATA_SECTION_NODE); // 4
System.out.println(cdata.getNodeType() == Node.CDATA_SECTION_NODE); // true

static final short COMMENT_NODE

El nodo es un comentario. (Traducción automática)

final var xml = """
        <root><!-- abc --></root>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

final Node comment = document.getDocumentElement().getFirstChild();
System.out.println(comment); // [#comment:  abc ]

System.out.println(Node.COMMENT_NODE); // 8
System.out.println(comment.getNodeType() == Node.COMMENT_NODE); // true

static final short DOCUMENT_FRAGMENT_NODE

El nodo es un DocumentFragment. (Traducción automática)

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.newDocument();

final Node fragment = document.createDocumentFragment();
System.out.println(fragment); // [#document-fragment: null]

System.out.println(Node.DOCUMENT_FRAGMENT_NODE); // 11
System.out.println(fragment.getNodeType() == Node.DOCUMENT_FRAGMENT_NODE); // true

static final short DOCUMENT_NODE

El nodo es un Documento. (Traducción automática)

final var xml = """
        <root/>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final Node document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
System.out.println(document); // [#document: null]

System.out.println(Node.DOCUMENT_NODE); // 9
System.out.println(document.getNodeType() == Node.DOCUMENT_NODE); // true

static final short DOCUMENT_POSITION_CONTAINED_BY

El nodo está contenido por el nodo de referencia. (Traducción automática)

final var xml = """
        <root><child/></root>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

final var root = document.getDocumentElement();
System.out.println(root); // [root: null]

final var child = root.getFirstChild();
System.out.println(child); // [child: null]

final var type = root.compareDocumentPosition(child);

System.out.printf("%#x%n", type); // 0x14
System.out.printf("%#x%n", Node.DOCUMENT_POSITION_CONTAINED_BY); // 0x10
System.out.printf("%#x%n", type & Node.DOCUMENT_POSITION_CONTAINED_BY); // 0x10

static final short DOCUMENT_POSITION_CONTAINS

El nodo contiene el nodo de referencia. (Traducción automática)

final var xml = """
        <root><child/></root>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

final var root = document.getDocumentElement();
System.out.println(root); // [root: null]

final var child = root.getFirstChild();
System.out.println(child); // [child: null]

final var type = child.compareDocumentPosition(root);

System.out.printf("%#x%n", type); // 0xa
System.out.printf("%#x%n", Node.DOCUMENT_POSITION_CONTAINS); // 0x8
System.out.printf("%#x%n", type & Node.DOCUMENT_POSITION_CONTAINS); // 0x8

static final short DOCUMENT_POSITION_DISCONNECTED

Los dos nodos están desconectados. (Traducción automática)

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();

final var document1 = builder.newDocument();
final var node1 = document1.createTextNode("abcd");
System.out.println(node1); // [#text: abcd]

final var document2 = builder.newDocument();
final var node2 = document2.createTextNode("xyz");
System.out.println(node2); // [#text: xyz]

final var type = node1.compareDocumentPosition(node2);

System.out.printf("%#x%n", type); // 0x23
System.out.printf("%#x%n", Node.DOCUMENT_POSITION_DISCONNECTED); // 0x1
System.out.printf("%#x%n", type & Node.DOCUMENT_POSITION_DISCONNECTED); // 0x1

static final short DOCUMENT_POSITION_FOLLOWING

El nodo sigue al nodo de referencia. (Traducción automática)

final var xml = """
        <root>
            <child-a/>
            <child-b/>
        </root>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

final var childA = document.getElementsByTagName("child-a").item(0);
System.out.println(childA); // [child-a: null]

final var childB = document.getElementsByTagName("child-b").item(0);
System.out.println(childB); // [child-b: null]

final var type = childA.compareDocumentPosition(childB);

System.out.printf("%#x%n", type); // 0x4
System.out.printf("%#x%n", Node.DOCUMENT_POSITION_FOLLOWING); // 0x4
System.out.printf("%#x%n", type & Node.DOCUMENT_POSITION_FOLLOWING); // 0x4

static final short DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC

La determinación de lo precedente versus lo siguiente es específica de cada implementación. (Traducción automática)

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();

final var document1 = builder.newDocument();
final var node1 = document1.createTextNode("abcd");
System.out.println(node1); // [#text: abcd]

final var document2 = builder.newDocument();
final var node2 = document2.createTextNode("xyz");
System.out.println(node2); // [#text: xyz]

final short type = node1.compareDocumentPosition(node2);

System.out.printf("%#x%n", type); // 0x23
System.out.printf("%#x%n", Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC); // 0x20
System.out.printf("%#x%n", type & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC); // 0x20

static final short DOCUMENT_POSITION_PRECEDING

El segundo nodo precede al nodo de referencia. (Traducción automática)

final var xml = """
        <root>
            <child-a/>
            <child-b/>
        </root>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

final var childA = document.getElementsByTagName("child-a").item(0);
System.out.println(childA); // [child-a: null]

final var childB = document.getElementsByTagName("child-b").item(0);
System.out.println(childB); // [child-b: null]

final var type = childB.compareDocumentPosition(childA);

System.out.printf("%#x%n", type); // 0x2
System.out.printf("%#x%n", Node.DOCUMENT_POSITION_PRECEDING); // 0x2
System.out.printf("%#x%n", type & Node.DOCUMENT_POSITION_PRECEDING); // 0x2

static final short DOCUMENT_TYPE_NODE

El nodo es un DocumentType. (Traducción automática)

final var xml = """
        <!DOCTYPE root>
        <root/>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

final Node doctype = document.getDoctype();
System.out.println(doctype); // [root: null]

System.out.println(Node.DOCUMENT_TYPE_NODE); // 10
System.out.println(doctype.getNodeType() == Node.DOCUMENT_TYPE_NODE); // true

static final short ELEMENT_NODE

El nodo es un elemento. (Traducción automática)

final var xml = """
        <root/>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

final Node element = document.getDocumentElement();
System.out.println(element); // [root: null]

System.out.println(Node.ELEMENT_NODE); // 1
System.out.println(element.getNodeType() == Node.ELEMENT_NODE); // true

static final short ENTITY_NODE

El nodo es una entidad. (Traducción automática)

final var xml = """
        <!DOCTYPE root [
            <!ENTITY aaa "bbb">
        ]>
        <root>&aaa;</root>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

final Node entity = document.getDoctype().getEntities().item(0);
System.out.println(entity); // [aaa: null]

System.out.println(Node.ENTITY_NODE); // 6
System.out.println(entity.getNodeType() == Node.ENTITY_NODE); // true

//<root>bbb</root>
printDocument(document);

static final short ENTITY_REFERENCE_NODE

El nodo es una EntityReference. (Traducción automática)

final var xml = """
        <!DOCTYPE root [
            <!ENTITY aaa "bbb">
        ]>
        <root>&aaa;</root>
        """;

final var factory = DocumentBuilderFactory.newInstance();
factory.setExpandEntityReferences(false);

final var document = factory.newDocumentBuilder().parse(
        new ByteArrayInputStream(xml.getBytes()));

final Node entityReference = document.getDocumentElement().getFirstChild();
System.out.println(entityReference); // [aaa: null]

System.out.println(Node.ENTITY_REFERENCE_NODE); // 5
System.out.println(entityReference.getNodeType() == Node.ENTITY_REFERENCE_NODE); // true

static final short NOTATION_NODE

El nodo es una notación. (Traducción automática)

final var xml = """
        <!DOCTYPE root [
           <!NOTATION sample SYSTEM "aaa">
        ]>
        <root/>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

final Node notation = document.getDoctype().getNotations().item(0);
System.out.println(notation); // [sample: null]

System.out.println(Node.NOTATION_NODE); // 12
System.out.println(notation.getNodeType() == Node.NOTATION_NODE); // true

static final short PROCESSING_INSTRUCTION_NODE

El nodo es una ProcessingInstruction. (Traducción automática)

final var xml = """
        <root><?target content?></root>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

final Node pi = document.getDocumentElement().getFirstChild();
System.out.println(pi); // [target: content]

System.out.println(Node.PROCESSING_INSTRUCTION_NODE); // 7
System.out.println(pi.getNodeType() == Node.PROCESSING_INSTRUCTION_NODE); // true

static final short TEXT_NODE

El nodo es un nodo de texto. (Traducción automática)

final var xml = """
        <root>abcd</root>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

final Node text = document.getDocumentElement().getFirstChild();
System.out.println(text); // [#text: abcd]

System.out.println(Node.TEXT_NODE); // 3
System.out.println(text.getNodeType() == Node.TEXT_NODE); // true

Methods

Node appendChild (Node newChild)

Agrega el nodo newChild al final de la lista de hijos de este nodo. (Traducción automática)

final var xml = """
        <root/>
        """;

final var document = DocumentBuilderFactory.newInstance()
        .newDocumentBuilder().parse(new ByteArrayInputStream(xml.getBytes()));

final Node root = document.getDocumentElement();
System.out.println(root); // [root: null]

final Node child = document.createElement("child");
System.out.println(child); // [child: null]

final Node ret = root.appendChild(child);
System.out.println(ret); // [child: null]

//<root>
//    <child/>
//</root>
printDocument(document);

Node cloneNode (boolean deep)

Devuelve un duplicado de este nodo, es decir, sirve como un constructor de copia genérico para los nodos. (Traducción automática)

final var xml = """
        <root><a><b>xyz</b></a></root>
        """;

final var document = DocumentBuilderFactory.newInstance()
        .newDocumentBuilder().parse(new ByteArrayInputStream(xml.getBytes()));

//<root>
//    <a>
//        <b>xyz</b>
//    </a>
//</root>
printDocument(document);

final Node root = document.getDocumentElement();
System.out.println(root); // [root: null]

final Node childA = document.getElementsByTagName("a").item(0);
System.out.println(childA); // [a: null]

final Node clonedDeepNode = childA.cloneNode(true);
final Node clonedNode = childA.cloneNode(false);

root.appendChild(clonedDeepNode);
root.appendChild(clonedNode);

//<root>
//    <a>
//        <b>xyz</b>
//    </a>
//    <a>
//        <b>xyz</b>
//    </a>
//    <a/>
//</root>
printDocument(document);

short compareDocumentPosition (Node other)

Compara el nodo de referencia, es decir, el nodo en el que se llama este método, con un nodo, es decir, el que se pasa como parámetro, con respecto a su posición en el documento y según el orden del documento. (Traducción automática)

final var xml = """
        <root>
            <child/>
        </root>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

final Node root = document.getDocumentElement();
System.out.println(root); // [root: null]

final Node child = document.getElementsByTagName("child").item(0);
System.out.println(child); // [child: null]

final short type = root.compareDocumentPosition(child);
System.out.printf("%#x%n", type); // 0x14

System.out.printf("%#x%n", Node.DOCUMENT_POSITION_CONTAINED_BY); // 0x10
System.out.printf("%#x%n", type & Node.DOCUMENT_POSITION_CONTAINED_BY); // 0x10

System.out.printf("%#x%n", Node.DOCUMENT_POSITION_FOLLOWING); // 0x4
System.out.printf("%#x%n", type & Node.DOCUMENT_POSITION_FOLLOWING); // 0x4

NamedNodeMap getAttributes ()

Un NamedNodeMap que contiene los atributos de este nodo (si es un elemento) o nulo en caso contrario. (Traducción automática)

final var xml = """
        <root>
            <child aa="AA" bb="BB" />
        </root>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

final Node child = document.getElementsByTagName("child").item(0);
System.out.println(child); // [child: null]

final var attributes = child.getAttributes();

System.out.println("-- attributes --");
for (int i = 0; i < attributes.getLength(); i++) {
    final var attr = attributes.item(i);
    System.out.println(attr);
}

// Result
// ↓
//-- attributes --
//aa="AA"
//bb="BB"

String getBaseURI ()

La URI base absoluta de este nodo o nula si la implementación no pudo obtener una URI absoluta. (Traducción automática)

final var path = Path.of("R:", "java-work", "a.xml");
System.out.println(path); // R:\java-work\a.xml

Files.writeString(path, """
        <root>
            <child/>
        </root>
        """);

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(path.toFile());

final Node root = document.getDocumentElement();
System.out.println(root); // [root: null]
System.out.println(root.getBaseURI()); // file:/R:/java-work/a.xml

NodeList getChildNodes ()

Una lista de nodos que contiene todos los hijos de este nodo. (Traducción automática)

final var xml = """
        <root><child-a/><child-b/></root>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

final Node root = document.getDocumentElement();
System.out.println(root); // [root: null]

final var nodes = root.getChildNodes();
System.out.println(nodes.getLength()); // 2

System.out.println("-- nodes --");
for (int i = 0; i < nodes.getLength(); i++) {
    System.out.println(nodes.item(i));
}

// Result
// ↓
//-- nodes --
//[child-a: null]
//[child-b: null]
final var xml = """
        <root>
            <child-a/>
            <child-b/>
            <!-- comment! -->
        </root>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

final Node root = document.getDocumentElement();
System.out.println(root); // [root: null]

final var nodes = root.getChildNodes();
System.out.println(nodes.getLength()); // 7

System.out.println("-- nodes --");
for (int i = 0; i < nodes.getLength(); i++) {
    final var node = nodes.item(i);
    if (node instanceof Text text) {
        // For readability, line separators are converted to "\n" and spaces to "*".
        final var data = text.getData().replace("\n", "\\n").replace(" ", "*");
        System.out.println("[#text: " + data + "]");
    } else {
        System.out.println(node);
    }
}

// Result
// ↓
//-- nodes --
//[#text: \n****]
//[child-a: null]
//[#text: \n****]
//[child-b: null]
//[#text: \n****]
//[#comment:  comment! ]
//[#text: \n]

Object getFeature (String feature, String version)

Este método devuelve un objeto especializado que implementa las API especializadas de la función y versión especificadas, como se especifica en . (Traducción automática)

final var xml = """
        <root>abcd</root>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

final Node root = document.getDocumentElement();
System.out.println(root); // [root: null]

System.out.println(root.isSupported("XML", "3.0")); // true
System.out.println(root.getFeature("XML", "3.0")); // [root: null]

System.out.println(root.isSupported("XML", "4.0")); // false
System.out.println(root.getFeature("XML", "4.0")); // null

Node getFirstChild ()

El primer hijo de este nodo. (Traducción automática)

final var xml = """
        <root><child-a/><child-b/><child-c/></root>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

//<root>
//    <child-a/>
//    <child-b/>
//    <child-c/>
//</root>
printDocument(document);

final Node root = document.getDocumentElement();
System.out.println(root); // [root: null]

final Node firstChild = root.getFirstChild();
System.out.println(firstChild); // [child-a: null]

final Node lastChild = root.getLastChild();
System.out.println(lastChild); // [child-c: null]

Node getLastChild ()

El último hijo de este nodo. (Traducción automática)

final var xml = """
        <root><child-a/><child-b/><child-c/></root>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

//<root>
//    <child-a/>
//    <child-b/>
//    <child-c/>
//</root>
printDocument(document);

final Node root = document.getDocumentElement();
System.out.println(root); // [root: null]

final Node firstChild = root.getFirstChild();
System.out.println(firstChild); // [child-a: null]

final Node lastChild = root.getLastChild();
System.out.println(lastChild); // [child-c: null]

String getLocalName ()

Devuelve la parte local del nombre calificado de este nodo. (Traducción automática)

final var xml = """
        <ns:root xmlns:ns="sample">
            <ns:child/>
        </ns:root>
        """;

final var builder = DocumentBuilderFactory.newNSInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

final Node child = document.getElementsByTagName("ns:child").item(0);
System.out.println(child); // [ns:child: null]

System.out.println(child.getPrefix()); // ns
System.out.println(child.getLocalName()); // child
System.out.println(child.getNamespaceURI()); // sample

String getNamespaceURI ()

El URI del espacio de nombres de este nodo, o nulo si no se especifica (ver ). (Traducción automática)

final var xml = """
        <ns:root xmlns:ns="sample">
            <ns:child/>
        </ns:root>
        """;

final var builder = DocumentBuilderFactory.newNSInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

final Node child = document.getElementsByTagName("ns:child").item(0);
System.out.println(child); // [ns:child: null]

System.out.println(child.getPrefix()); // ns
System.out.println(child.getLocalName()); // child
System.out.println(child.getNamespaceURI()); // sample

Node getNextSibling ()

El nodo que sigue inmediatamente a este nodo. (Traducción automática)

final var xml = """
        <root><child-a/><child-b/></root>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

//<root>
//    <child-a/>
//    <child-b/>
//</root>
printDocument(document);

final Node childA = document.getDocumentElement().getFirstChild();
System.out.println(childA); // [child-a: null]

final Node childB = childA.getNextSibling();
System.out.println(childB); // [child-b: null]

final Node childC = childB.getNextSibling();
System.out.println(childC); // null

String getNodeName ()

El nombre de este nodo, dependiendo de su tipo; consulte la tabla anterior. (Traducción automática)

final var xml = """
        <root>
            <child aa="AA">abcd</child>
        </root>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

// Element
final Node child = document.getElementsByTagName("child").item(0);
System.out.println(child.getNodeType() == Node.ELEMENT_NODE); // true
System.out.println(child.getNodeName()); // child
System.out.println(child.getNodeValue()); // null

// Attr
final Node attr = child.getAttributes().item(0);
System.out.println(attr.getNodeType() == Node.ATTRIBUTE_NODE); // true
System.out.println(attr.getNodeName()); // aa
System.out.println(attr.getNodeValue()); // AA

// Text
final Node text = child.getFirstChild();
System.out.println(text.getNodeType() == Node.TEXT_NODE); // true
System.out.println(text.getNodeName()); // #text
System.out.println(text.getNodeValue()); // abcd

short getNodeType ()

Un código que representa el tipo de objeto subyacente, como se define anteriormente. (Traducción automática)

final var xml = """
        <root>
            <child aa="AA">abcd</child>
        </root>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

// Element
final Node child = document.getElementsByTagName("child").item(0);
System.out.println(child.getNodeType() == Node.ELEMENT_NODE); // true
System.out.println(child.getNodeName()); // child
System.out.println(child.getNodeValue()); // null

// Attr
final Node attr = child.getAttributes().item(0);
System.out.println(attr.getNodeType() == Node.ATTRIBUTE_NODE); // true
System.out.println(attr.getNodeName()); // aa
System.out.println(attr.getNodeValue()); // AA

// Text
final Node text = child.getFirstChild();
System.out.println(text.getNodeType() == Node.TEXT_NODE); // true
System.out.println(text.getNodeName()); // #text
System.out.println(text.getNodeValue()); // abcd

String getNodeValue ()

El valor de este nodo, dependiendo de su tipo; vea la tabla anterior. (Traducción automática)

final var xml = """
        <root>
            <child aa="AA">abcd</child>
        </root>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

// Element
final Node child = document.getElementsByTagName("child").item(0);
System.out.println(child.getNodeType() == Node.ELEMENT_NODE); // true
System.out.println(child.getNodeName()); // child
System.out.println(child.getNodeValue()); // null

// Attr
final Node attr = child.getAttributes().item(0);
System.out.println(attr.getNodeType() == Node.ATTRIBUTE_NODE); // true
System.out.println(attr.getNodeName()); // aa
System.out.println(attr.getNodeValue()); // AA

// Text
final Node text = child.getFirstChild();
System.out.println(text.getNodeType() == Node.TEXT_NODE); // true
System.out.println(text.getNodeName()); // #text
System.out.println(text.getNodeValue()); // abcd

Document getOwnerDocument ()

El objeto de documento asociado con este nodo. (Traducción automática)

final var xml = """
        <root>
            <child/>
        </root>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

final Node child = document.getElementsByTagName("child").item(0);
System.out.println(child); // [child: null]

final var ownerDocument = child.getOwnerDocument();
System.out.println(document.isSameNode(ownerDocument)); // true

Node getParentNode ()

El padre de este nodo. (Traducción automática)

final var xml = """
        <root>
            <child>
                <child-child/>
            </child>
        </root>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

final Node childChild = document.getElementsByTagName("child-child").item(0);
System.out.println(childChild); // [child-child: null]

final Node child = childChild.getParentNode();
System.out.println(child); // [child: null]

final Node root = child.getParentNode();
System.out.println(root); // [root: null]

String getPrefix ()

El prefijo del espacio de nombres de este nodo, o nulo si no está especificado. (Traducción automática)

final var xml = """
        <ns:root xmlns:ns="sample">
            <ns:child/>
        </ns:root>
        """;

final var builder = DocumentBuilderFactory.newNSInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

final Node child = document.getElementsByTagName("ns:child").item(0);
System.out.println(child); // [ns:child: null]

System.out.println(child.getPrefix()); // ns
System.out.println(child.getLocalName()); // child
System.out.println(child.getNamespaceURI()); // sample

Node getPreviousSibling ()

El nodo inmediatamente anterior a este nodo. (Traducción automática)

final var xml = """
        <root><child-y/><child-z/></root>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

//<root>
//    <child-y/>
//    <child-z/>
//</root>
printDocument(document);

final Node childZ = document.getDocumentElement().getLastChild();
System.out.println(childZ); // [child-z: null]

final Node childY = childZ.getPreviousSibling();
System.out.println(childY); // [child-y: null]

final Node childX = childY.getPreviousSibling();
System.out.println(childX); // null

String getTextContent ()

Este atributo devuelve el contenido de texto de este nodo y sus descendientes. (Traducción automática)

final var xml = """
        <root>aaa<child>XYZ</child>bbb</root>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

final Node root = document.getDocumentElement();
System.out.println(root); // [root: null]
System.out.println(root.getTextContent()); // aaaXYZbbb

final Node child = document.getElementsByTagName("child").item(0);
System.out.println(child); // [child: null]
System.out.println(child.getTextContent()); // XYZ

Object getUserData (String key)

Recupera el objeto asociado a una clave en un nodo este. (Traducción automática)

final var xml = """
        <root>
            <child-a/>
            <child-b/>
        </root>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

final Node childA = document.getElementsByTagName("child-a").item(0);
System.out.println(childA); // [child-a: null]

final Node childB = document.getElementsByTagName("child-b").item(0);
System.out.println(childB); // [child-b: null]

final var handler = new UserDataHandler() {
    @Override
    public void handle(short operation, String key, Object data, Node src, Node dst) {
        System.out.println("-- UserDataHandler.handle --");
        System.out.println(
                "operation = " + operation + " : key = " + key +
                        " : data = " + data + " : src = " + src + " : dst = " + dst);
    }
};

final var retA = childA.setUserData("a-key", "aaa", handler);
System.out.println(retA); // null

final var retB = childB.setUserData("b-key", "bbb", handler);
System.out.println(retB); // null

System.out.println(childA.getUserData("a-key")); // aaa
System.out.println(childA.getUserData("b-key")); // null

System.out.println(childB.getUserData("a-key")); // null
System.out.println(childB.getUserData("b-key")); // bbb

final var clonedNode = childA.cloneNode(false);

// Result
// ↓
//-- UserDataHandler.handle --
//operation = 1 : key = a-key : data = aaa : src = [child-a: null] : dst = [child-a: null]

final var renamedNode = document.renameNode(childB, null, "child-z");

// Result
// ↓
//-- UserDataHandler.handle --
//operation = 4 : key = b-key : data = bbb : src = [child-z: null] : dst = null

boolean hasAttributes ()

Devuelve si este nodo (si es un elemento) tiene atributos. (Traducción automática)

final var xml = """
        <root>
            <child-a/>
            <child-b aa="AA" />
        </root>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

final Node childA = document.getElementsByTagName("child-a").item(0);
System.out.println(childA); // [child-a: null]
System.out.println(childA.hasAttributes()); // false

final Node childB = document.getElementsByTagName("child-b").item(0);
System.out.println(childB); // [child-b: null]
System.out.println(childB.hasAttributes()); // true

boolean hasChildNodes ()

Devuelve si este nodo tiene hijos. (Traducción automática)

final var xml = """
        <root><child/></root>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

final Node root = document.getDocumentElement();
System.out.println(root); // [root: null]
System.out.println(root.hasChildNodes()); // true
System.out.println(root.getChildNodes().getLength()); // 1

final Node child = document.getElementsByTagName("child").item(0);
System.out.println(child); // [child: null]
System.out.println(child.hasChildNodes()); // false
System.out.println(child.getChildNodes().getLength()); // 0

Node insertBefore (Node newChild, Node refChild)

Inserta el nodo newChild antes del nodo hijo existente refChild. (Traducción automática)

final var xml = """
        <root><child-z/></root>
        """;

final var document = DocumentBuilderFactory.newInstance()
        .newDocumentBuilder().parse(new ByteArrayInputStream(xml.getBytes()));

//<root>
//    <child-z/>
//</root>
printDocument(document);

final Node root = document.getDocumentElement();
System.out.println(root); // [root: null]

final Node childZ = document.getElementsByTagName("child-z").item(0);
System.out.println(childZ); // [child-z: null]

final Node childX = document.createElement("child-x");
final Node ret1 = root.insertBefore(childX, childZ);
System.out.println(ret1); // [child-x: null]

final Node childY = document.createElement("child-y");
final Node ret2 = root.insertBefore(childY, childZ);
System.out.println(ret2); // [child-y: null]

//<root>
//    <child-x/>
//    <child-y/>
//    <child-z/>
//</root>
printDocument(document);

boolean isDefaultNamespace (String namespaceURI)

Este método verifica si el namespaceURI especificado es el espacio de nombres predeterminado o no. (Traducción automática)

final var xml = """
        <root xmlns="sample1" xmlns:ns="sample2">
            <child-a/>
            <ns:child-b/>
        </root>
        """;

final var builder = DocumentBuilderFactory.newNSInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

final Node childA = document.getElementsByTagName("child-a").item(0);
System.out.println(childA); // [child-a: null]

System.out.println(childA.getNamespaceURI()); // sample1
System.out.println(childA.isDefaultNamespace("sample1")); // true
System.out.println(childA.isDefaultNamespace("sample2")); // false

final Node childB = document.getElementsByTagName("ns:child-b").item(0);
System.out.println(childB); // [ns:child-b: null]

System.out.println(childB.getNamespaceURI()); // sample2
System.out.println(childB.isDefaultNamespace("sample1")); // true
System.out.println(childB.isDefaultNamespace("sample2")); // false

boolean isEqualNode (Node arg)

Comprueba si dos nodos son iguales. (Traducción automática)

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.newDocument();

final Node nodeA1 = document.createElement("node-a");
final Node nodeA2 = document.createElement("node-a");

final Node nodeB = document.createElement("node-b");

System.out.println(nodeA1.isEqualNode(nodeA1)); // true
System.out.println(nodeA1.isEqualNode(nodeA2)); // true
System.out.println(nodeA1.isEqualNode(nodeB)); // false

System.out.println(nodeA1.isSameNode(nodeA1)); // true
System.out.println(nodeA1.isSameNode(nodeA2)); // false
System.out.println(nodeA1.isSameNode(nodeB)); // false

boolean isSameNode (Node other)

Devuelve si este nodo es el mismo que el dado. (Traducción automática)

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.newDocument();

final Node nodeA1 = document.createElement("node-a");
final Node nodeA2 = document.createElement("node-a");

final Node nodeB = document.createElement("node-b");

System.out.println(nodeA1.isEqualNode(nodeA1)); // true
System.out.println(nodeA1.isEqualNode(nodeA2)); // true
System.out.println(nodeA1.isEqualNode(nodeB)); // false

System.out.println(nodeA1.isSameNode(nodeA1)); // true
System.out.println(nodeA1.isSameNode(nodeA2)); // false
System.out.println(nodeA1.isSameNode(nodeB)); // false

boolean isSupported (String feature, String version)

Comprueba si la implementación del DOM implementa una característica específica y si esa característica es compatible con este nodo, como se especifica en . (Traducción automática)

final var xml = """
        <root>abcd</root>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

final Node root = document.getDocumentElement();
System.out.println(root); // [root: null]

System.out.println(root.isSupported("XML", "3.0")); // true
System.out.println(root.getFeature("XML", "3.0")); // [root: null]

System.out.println(root.isSupported("XML", "4.0")); // false
System.out.println(root.getFeature("XML", "4.0")); // null

String lookupNamespaceURI (String prefix)

Busque la URI del espacio de nombres asociada al prefijo dado, comenzando desde este nodo. (Traducción automática)

final var xml = """
        <root xmlns:ns1="sample1">
            <ns1:child-a>
                <ns2:child-b xmlns:ns2="sample2"/>
            </ns1:child-a>
        </root>
        """;

final var builder = DocumentBuilderFactory.newNSInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

final Node childA = document.getElementsByTagName("ns1:child-a").item(0);
System.out.println(childA); // [ns1:child-a: null]

System.out.println(childA.lookupNamespaceURI("ns1")); // sample1
System.out.println(childA.lookupNamespaceURI("ns2")); // null

final Node childB = document.getElementsByTagName("ns2:child-b").item(0);
System.out.println(childB); // [ns2:child-b: null]

System.out.println(childB.lookupNamespaceURI("ns1")); // sample1
System.out.println(childB.lookupNamespaceURI("ns2")); // sample2

String lookupPrefix (String namespaceURI)

Busque el prefijo asociado al URI del espacio de nombres dado, comenzando desde este nodo. (Traducción automática)

final var xml = """
        <root xmlns:ns1="sample1">
            <ns1:child-a>
                <ns2:child-b xmlns:ns2="sample2"/>
            </ns1:child-a>
        </root>
        """;

final var builder = DocumentBuilderFactory.newNSInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

final Node childA = document.getElementsByTagName("ns1:child-a").item(0);
System.out.println(childA); // [ns1:child-a: null]

System.out.println(childA.lookupPrefix("sample1")); // ns1
System.out.println(childA.lookupPrefix("sample2")); // null

final Node childB = document.getElementsByTagName("ns2:child-b").item(0);
System.out.println(childB); // [ns2:child-b: null]

System.out.println(childB.lookupPrefix("sample1")); // ns1
System.out.println(childB.lookupPrefix("sample2")); // ns2

void normalize ()

Coloca todos los nodos de texto en la profundidad completa del subárbol debajo de este nodo, incluidos los nodos de atributo, en una forma "normal" donde solo la estructura (por ejemplo, elementos, comentarios, instrucciones de procesamiento, secciones CDATA y referencias de entidad) separa los nodos de texto, es decir, no hay nodos de texto adyacentes ni nodos de texto vacíos. (Traducción automática)

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.newDocument();

final Node root = document.createElement("root");

// Intentionally creates Text nodes by splitting it.
root.appendChild(document.createTextNode("aaa"));
root.appendChild(document.createTextNode("bbb"));

root.appendChild(document.createElement("child"));

root.appendChild(document.createTextNode(""));

{
    final var nodes = root.getChildNodes();
    for (int i = 0; i < nodes.getLength(); i++) {
        System.out.println(nodes.item(i));
    }

    // Result
    // ↓
    //[#text: aaa]
    //[#text: bbb]
    //[child: null]
    //[#text: ]
}

// Adjacent text nodes are combined. Empty Text nodes are deleted.
root.normalize();

{
    final var nodes = root.getChildNodes();
    for (int i = 0; i < nodes.getLength(); i++) {
        System.out.println(nodes.item(i));
    }

    // Result
    // ↓
    //[#text: aaabbb]
    //[child: null]
}

Node removeChild (Node oldChild)

Elimina el nodo secundario indicado por oldChild de la lista de secundarios y lo devuelve. (Traducción automática)

final var xml = """
        <root><child>abcd</child></root>
        """;

final var document = DocumentBuilderFactory.newInstance()
        .newDocumentBuilder().parse(new ByteArrayInputStream(xml.getBytes()));

//<root>
//    <child>abcd</child>
//</root>
printDocument(document);

final Node root = document.getDocumentElement();
System.out.println(root); // [root: null]

final Node child = document.getElementsByTagName("child").item(0);
System.out.println(child); // [child: null]

final Node ret = root.removeChild(child);
System.out.println(ret); // [child: null]

//<root/>
printDocument(document);

Node replaceChild (Node newChild, Node oldChild)

Reemplaza el nodo secundario oldChild con newChild en la lista de secundarios y devuelve el nodo oldChild. (Traducción automática)

final var xml = """
        <root><child-a>abcd</child-a></root>
        """;

final var document = DocumentBuilderFactory.newInstance()
        .newDocumentBuilder().parse(new ByteArrayInputStream(xml.getBytes()));

//<root>
//    <child-a>abcd</child-a>
//</root>
printDocument(document);

final Node root = document.getDocumentElement();
System.out.println(root); // [root: null]

final Node childA = document.getElementsByTagName("child-a").item(0);
System.out.println(childA); // [child-a: null]

final Node childB = document.createElement("child-b");
childB.appendChild(document.createTextNode("XYZ"));

final Node ret = root.replaceChild(childB, childA);
System.out.println(ret); // [child-a: null]

//<root>
//    <child-b>XYZ</child-b>
//</root>
printDocument(document);

void setNodeValue (String nodeValue)

El valor de este nodo, dependiendo de su tipo; vea la tabla anterior. (Traducción automática)

final var xml = """
        <root><child aa="AA"/></root>
        """;

final var document = DocumentBuilderFactory.newInstance()
        .newDocumentBuilder().parse(new ByteArrayInputStream(xml.getBytes()));

//<root>
//    <child aa="AA"/>
//</root>
printDocument(document);

final Node child = document.getElementsByTagName("child").item(0);
System.out.println(child); // [child: null]

final Node attr = child.getAttributes().item(0);
attr.setNodeValue("XYZ");

//<root>
//    <child aa="XYZ"/>
//</root>
printDocument(document);

void setPrefix (String prefix)

El prefijo del espacio de nombres de este nodo, o nulo si no está especificado. (Traducción automática)

final var xml = """
        <ns:root xmlns:ns="sample"><ns:child/></ns:root>
        """;

final var document = DocumentBuilderFactory.newNSInstance()
        .newDocumentBuilder().parse(new ByteArrayInputStream(xml.getBytes()));

//<ns:root xmlns:ns="sample">
//    <ns:child/>
//</ns:root>
printDocument(document);

final Node child = document.getElementsByTagName("ns:child").item(0);
System.out.println(child); // [ns:child: null]

child.setPrefix("xx");

//<ns:root xmlns:ns="sample">
//    <xx:child xmlns:xx="sample"/>
//</ns:root>
printDocument(document);

void setTextContent (String textContent)

Este atributo devuelve el contenido de texto de este nodo y sus descendientes. (Traducción automática)

final var xml = """
        <root><child/></root>
        """;

final var document = DocumentBuilderFactory.newInstance()
        .newDocumentBuilder().parse(new ByteArrayInputStream(xml.getBytes()));

//<root>
//    <child/>
//</root>
printDocument(document);

final Node child = document.getElementsByTagName("child").item(0);
System.out.println(child); // [child: null]

child.setTextContent("abcd");

//<root>
//    <child>abcd</child>
//</root>
printDocument(document);

Object setUserData (String key, Object data, UserDataHandler handler)

Asociar un objeto a una clave en este nodo. (Traducción automática)

final var xml = """
        <root>
            <child-a/>
            <child-b/>
        </root>
        """;

final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.parse(new ByteArrayInputStream(xml.getBytes()));

final Node childA = document.getElementsByTagName("child-a").item(0);
System.out.println(childA); // [child-a: null]

final Node childB = document.getElementsByTagName("child-b").item(0);
System.out.println(childB); // [child-b: null]

final var handler = new UserDataHandler() {
    @Override
    public void handle(short operation, String key, Object data, Node src, Node dst) {
        System.out.println("-- UserDataHandler.handle --");
        System.out.println(
                "operation = " + operation + " : key = " + key +
                        " : data = " + data + " : src = " + src + " : dst = " + dst);
    }
};

final var retA = childA.setUserData("a-key", "aaa", handler);
System.out.println(retA); // null

final var retB = childB.setUserData("b-key", "bbb", handler);
System.out.println(retB); // null

System.out.println(childA.getUserData("a-key")); // aaa
System.out.println(childA.getUserData("b-key")); // null

System.out.println(childB.getUserData("a-key")); // null
System.out.println(childB.getUserData("b-key")); // bbb

final var clonedNode = childA.cloneNode(false);

// Result
// ↓
//-- UserDataHandler.handle --
//operation = 1 : key = a-key : data = aaa : src = [child-a: null] : dst = [child-a: null]

final var renamedNode = document.renameNode(childB, null, "child-z");

// Result
// ↓
//-- UserDataHandler.handle --
//operation = 4 : key = b-key : data = bbb : src = [child-z: null] : dst = null

Related posts

To top of page